一、搭建MyBatis框架
- 导入相关jar包
- 编写核心配置文件(配置数据库连接的相关信息,以及配置了mapper映射文件)
- 编写dao操作
- 编写mapper映射文件
- 编写实体类
二、CRUD(增、查、改、删)实现步骤
user.mapper.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.liujie.model.UserMapper">
<!-- 查询单个用户 -->
<select id="selectUser" resultType="com.liujie.model.User">
select * from user where id = #{id}
</select>
<!-- 查询所有用户 -->
<select id="selectAll" resultType="com.liujie.model.User">
select * from user
</select>
<!-- 添加用户 -->
<insert id="addUser" parameterType="com.liujie.model.User" useGeneratedKeys="true">
insert into user(name, pwd) values(#{name}, #{pwd})
</insert>
<!-- 更新用户信息 -->
<update id="updateUser" parameterType="com.liujie.model.User">
update user set name=#{name}, pwd=#{pwd} where id=#{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUser">
delete from user where id=#{id}
</delete>
</mapper>
|
MyBatisUtil.java
|
public class MyBatisUtil {
//创建SqlSessionFactory
public static SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
return sessionFactory;
}
//获得SqlSession
public static SqlSession getSqlSession() throws IOException {
SqlSessionFactory sessionFactory = getSqlSessionFactory();
return sessionFactory.openSession();
}
}
|
UserDao.java
|
public class UserDao {
public User getById(int id) throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
User user = session.selectOne("com.liujie.model.UserMapper.selectUser", id);
session.close();
return user;
}
public List<User> getAll() throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
List<User> list = session.selectList("com.liujie.model.UserMapper.selectAll");
session.close();
return list;
}
public int addUser(User user) throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
int result = session.insert("com.liujie.model.UserMapper.addUser", user);
session.commit();
session.close();
return result;
}
public int updateUser(User user) throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
//int result = session.update("com.liujie.model.UserMapper.updateUser", user);
int result = session.insert("com.liujie.model.UserMapper.updateUser", user);
session.commit();
session.close();
return result;
}
public int deleteUser(int id) throws IOException {
SqlSession session = MyBatisUtil.getSqlSession();
//int result = session.insert("com.liujie.model.UserMapper.deleteUser", id);
int result = session.delete("com.liujie.model.UserMapper.deleteUser", id);
session.commit();
session.close();
return result;
}
}
|
Test.java
|
public class Test {
public static void main(String[] args) throws IOException {
UserDao userDao = new UserDao();
//System.out.println(userDao.getById(1));
//User user = new User();
//User user = userDao.getById(5);
//user.setName("邹波");
//user.setPwd("222");
List<User> list = userDao.getAll();
for(User user : list) {
System.out.println(user);
}
//System.out.println(userDao.deleteUser(5));
}
}
|
User.java
|
public class User {
private int id;
private String name;
private String pwd;
//下面省略get、set和toString方法
|
mybatis-config.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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/liujie/model/user.mapper.xml" />
</mappers>
</configuration>
|