- 引用相关jar包 mybatis和连接数据库的jar,目前使用的是mysql数据库
- 写配置文件,mybatis-cfg.xml, jdbc.properties
- 写实体类, 实体Mapper.xml配置文件
下面是Mybatis的工具类
public class MybatisUtils {
public static SqlSession openSession() throws IOException{
String resource = "mybatis-cfg.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream, "user");//这里的user指的是mybatis-cfg.xml中的数据源配置中的数据源id,见下列代码
return sessionFactory.openSession();
}
}
从这个工具类build sessionFactory可以猜测出, 当配置文件被加载之后,SqlSessionFactoryBuilder会接收配置文件中的数据源信息, 根据配置的数据源id将数据源构建好供使用
//mybatis-cfg.xml中的数据源配置
<?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>
<!-- 读取数据库连接信息 -->
<properties resource="jdbc.properties"></properties>
<environments default="development">
<!-- 配置数据源 -->
<environment id="user">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/zz/entity/UserMapper.xml"></mapper>
</mappers>
</configuration>
然后写一个实体类
public class User {
private int id;
private String userName;
private int userAge;
private String userAddress;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
@Override
public String toString() {
// 重写toString()方法
return id + "|"+ userName + "|" + userAge + "|"+ userAddress;
}
}
别忘记还有一个UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zz.entity">
<select id="selectUserById" parameterType="int" resultType="com.zz.entity.User">
select * from `user` where id = #{id}
</select>
<select id="selectAll" resultType="com.zz.entity.User">
select * from `user`
</select>
</mapper>
最后就是准备测试了,写了两个测试用例
@Test
public void test() throws IOException {
SqlSession session = MybatisUtils.openSession();
String statement = "selectUserById";//UserMapper.xml中的id
User user = session.selectOne(statement , 1);
System.out.println(user.toString());
session.close();
}
@Test
public void testAll() throws IOException {
SqlSession session = MybatisUtils.openSession();
String statement = "selectAll";//UserMapper.xml中的id
List<User> list = session.selectList(statement);
System.out.println(list);
session.close();
}
这是全部代码,肯定可以成功,至于数据库表结构直接参造User实体类即可。