示例:【MyBatis 增、删、改、查操作】
项目结构如下:
创建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>
<!-- 默认的环境id为mysql -->
<environments default="mysql">
<environment id="mysql">
<!-- 指定事务管理类型 -->
<transactionManager type="jdbc"/>
<!-- 配置数据库连接 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 配置Mapper的位置 -->
<mappers>
<mapper resource="com/mapper/UserMapper.xml"/>
</mappers>
</configuration>
创建SessionFactory
package com.factory;
import java.io.IOException;
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;
public class SessionFactory {
private static SqlSessionFactory sessionFactory=null;
//初始化创建SqlSessionFactory对象
static {
try {
//读取配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//根据配置文件构建SqlSessionFactory
sessionFactory=new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSession对象
public static SqlSession getSqlSession() {
return sessionFactory.openSession();
}
// 获取SqlSessionFactory
public static SqlSessionFactory getSqlSessionFactory() {
return sessionFactory;
}
}
创建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.mapper.UserMapper">
<!-- 添加用户 -->
<insert id="addUser" parameterType="com.po.User">
insert into t_user(username,password) values(#{username},#{password})
</insert>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="int">
delete from t_user where uid=#{uid}
</delete>
<!-- 更新用户 -->
<update id="updateUser" parameterType="com.po.User">
update t_user set username=#{username},password=#{password} where uid=#{uid}
</update>
<!-- 查询用户 -->
<select id="getUserById" parameterType="Integer" resultType="com.po.User">
select * from t_user where uid=#{uid}
</select>
<!-- 查询所有用户 -->
<select id="getUsers" resultType="com.po.User">
select * from t_user
</select>
<!-- 模糊查询 -->
<select id="findUser" resultType="com.po.User" parameterType="String">
select * from t_user where username like CONCAT('%',#{username},'%')
</select>
</mapper>
创建UserDao
package com.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.factory.SessionFactory;
import com.po.User;
public class UserDao {
private SqlSession session=SessionFactory.getSqlSession();
private User user;
private List<User> users;
public SqlSession getSession() {
return session;
}
//增加用户
public void addUser(User user) {
session.insert("com.mapper.UserMapper.addUser",user);
session.commit();
session.close();
}
//删除用户
public void deleteUser(int id) {
session.delete("com.mapper.UserMapper.deleteUser", id);
session.commit();
session.close();
}
//根据 id查询用户
public User getUserById(Integer id) {
user=session.selectOne("com.mapper.UserMapper.getUserById", id);
session.commit();
session.close();
return user;
}
//查询所有用户
public List<User> getUsers(){
users=session.selectList("com.mapper.UserMapper.getUsers");
session.commit();
session.close();
return users;
}
//模糊查询
public List<User> findUser(String username){
users=session.selectList("com.mapper.UserMapper.findUser",username);
session.commit();
session.close();
return users;
}
//更新用户
public void updateUser(User user,int id) {
User u=new User();
u=session.selectOne("com.mapper.UserMapper.getUserById", id);
u.setUsername(user.getUsername());
u.setPassword(user.getPassword());
session.update("com.mapper.UserMapper.updateUser", u);
session.commit();
session.close();
}
}
创建Test
package com.test;
import java.util.List;
import com.dao.UserDao;
import com.po.User;
public class Test {
public static void main(String[] args) {
}
}
增加用户
public static void main(String[] args) {
UserDao userDao=new UserDao();
User user=new User();
user.setUsername("user");
user.setPassword("user123");
userDao.addUser(user);
}
删除用户
public static void main(String[] args) {
UserDao userDao=new UserDao();
userDao.deleteUser(12);
}
修改用户
public static void main(String[] args) {
UserDao userDao=new UserDao();
User user=new User();
user.setUsername("李四");
user.setPassword("5622");
userDao.updateUser(user, 3);
}
根据id查询用户
public static void main(String[] args) {
UserDao userDao=new UserDao();
User user=userDao.getUserById(1);
System.out.println(user);
}
模糊查询用户
public static void main(String[] args) {
UserDao userDao=new UserDao();
List<User> users=userDao.findUser("an");
for (User u : users) {
System.out.println(u);
}
}