参考文献:http://www.mybatis.org/mybatis-3/zh/getting-started.html
Mybatis结构
数据库表
mybatis-config.xml --- 作用:注册连接JDBC (mybatis核心配置文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="User" type="com.pojo.User" />
</typeAliases>
<!-- 环境变量 连接数据库的信息 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 注册Mapper(映射)文件 -->
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
</mappers>
</configuration>
UserMapper.java ---作用:对数据库进行SQL操作
package com.mapper;
import com.pojo.User;
import java.util.List;
/**
* Mapper接口
*/
public interface UserMapper {
//根据id查询数据
public User findUserById(int id);
//查询所有数据
public List<User> findAllUser();
//添加User
public int addUser(User u);
//根据id删除数据
public int deleteUserById(int id);
//修改User
public int updateUser(User user);
}
UserMapper.xml ---作用:对数据库进行SQL操作配置文件
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper">
<!-- 记录总条数
<select id="count" resultType="int">
select count(1) from user;
</select>
-->
<!-- 查询单一 -->
<select id="findOne" parameterType="int" resultType="com.pojo.User">
select * from user where id=#{id}
</select>
<select id="findAllUser" resultType="com.pojo.User">
SELECT * from user
</select>
<select id="findUserById" parameterType="int" resultType="com.pojo.User">
select * from user where id = #{id}
</select>
</mapper>
User.java ---作用:POJO
package com.pojo;
public class User {
private int id;
private char name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public char getName() {
return name;
}
public void setName(char name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
MyBatisTest.java ---作用:测试Mybatis
package com.test;
import java.io.IOException;
import java.util.*;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import com.mapper.UserMapper;
import com.pojo.*;
public class MyBatisTest {
@Test
public void findAll() {
InputStream inputStream = null;
//获得当前MyBatis总的配置文件路径
String resource = "com/config/mybatis-config.xml";
try {
//获得当前配置文件的输入流
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//通过流对象,来创建SqlSessionFactory对象 ---> 数据库会话工厂
SqlSessionFactory sqlFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过数据库会话工厂开启跟数据库的一次对话
SqlSession sqlSession = sqlFactory.openSession();
//从SQL中取出数据
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.findUserById(2);
System.out.println(user.getAge());
// User user = sqlSession.selectOne("com.mapper.UserMapper.findOne");
// List<User> user = mapper.findAllUser();
// for(User user1 : user) {
// System.out.println(user1);
// }
}
}
log4j.properties
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
运行结果: