1.在src包创建mybatis-config.xml文件,导入database.propertise文件做数据库导入;
创建SqlSessionUtils.java工具类,用于直接创建session对象,减少代码冗余
package com.kgc.util;
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 SqlSessionUtils {
private static SqlSessionFactory sqlSessionFactory;
//静态代码块,从"mybatis-config.xml"获取连接数据库、创建log4j等的数据,创建sqlSessionFactory对象
static{
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//在类调用的静态代码块后获取sqlSession对象的方法,使用false关闭自动提交
public static SqlSession getSqlSession() {
SqlSession sqlSession = sqlSessionFactory.openSession(false);
return sqlSession;
}
//关闭sqlSession对象的方法
public static void closeSession(SqlSession sqlSession) {
if (sqlSession != null) {
sqlSession.close();
}
}
}
2.创建dao层,创建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">
//工作空间,dao包全路径
<mapper namespace="com.kgc.dao.UserDao">
//索引id 返回类型及sql语句
<select id="count" resultType="int">SELECT COUNT(1) FROM USER</select>
<select id="selectALL" resultType="com.kgc.entity.User">select * from user</select>
<delete id="deleteById" parameterType="int">delete from user where id = #{id}</delete>
<insert id="insert" parameterType="int">insert into user value(null,#{name},#{pwd}) </insert>
<update id="updateById" parameterType="int">UPDATE USER SET name = #{name} , pwd = #{pwd} WHERE id = #{id};</update>
</mapper>
创建dao接口,其抽象方法名字跟id要一样
package com.kgc.dao;
import java.util.List;
import com.kgc.entity.User;
public interface UserDao {
List<User> selectALL();
int deleteById(int id);
int insert(User user);
int updateById(User user);
}
test类
package com.kgc.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.kgc.dao.UserDao;
import com.kgc.entity.User;
import com.kgc.util.SqlSessionUtils;
public class Test {
public static void main(String[] args) {
SqlSession session =SqlSessionUtils.getSqlSession();
//全查
List<User> list = session.getMapper(UserDao.class).selectALL();
for (User user : list) {
System.out.println(user.toString());
//删
int delete = session.getMapper(UserDao.class).deleteById(2);
System.out.println(delete);
session.commit();
//增
User user1 = new User(0,"laowu","ahaha");
int insert = session.getMapper(UserDao.class).insert(user1);
System.out.println(insert);
session.commit();
//改
User updateUser = new User(1, "yueyao", "123456");
int update = session.getMapper(UserDao.class).updateById(updateUser);
session.commit();
System.out.println(update);
//模糊查
List<User> list2 = session.getMapper(UserDao.class).selectByName("yu");
for (User user2 : list2) {
System.out.println(user2.toString());
}
}
}
}