sql映射文件配置
<?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="sys_userMapper">
<!--根据Id查询user表-->
<select id="getUserById" parameterType="int" resultType="UserEntity">
SELECT * FROM sys_user where id=#{Id}
</select>
<!--CU-->
<insert id="addUser" parameterType="UserEntity">
INSERT INTO sys_user(name,age,gender) values(#{name},#{age},#{gender})
</insert>
<delete id="deleteUser" parameterType="int">
DELETE FROM sys_user where id=#{id}
</delete>
<update id="updateUser" parameterType="UserEntity">
UPDATE sys_user SET name=#{name},age=#{age},gender=#{gender} where id=#{id}
</update>
<select id="getUserList" resultType="UserEntity">
SELECT * FROM sys_user
</select>
</mapper>
代码实现
public static void Add() {
SqlSessionFactory factory = MybatisUtil.GetFactory();
//默认手动提交
SqlSession sqlSession = factory.openSession();
String statement = "sys_userMapper.addUser";
int insert = sqlSession.insert(statement, new UserEntity(-1, "张三", 46, 1));
sqlSession.commit();
sqlSession.close();
System.out.print(insert);
}
public static void Delete() {
SqlSessionFactory factory = MybatisUtil.GetFactory();
//默认手动提交
SqlSession sqlSession = factory.openSession(true);
String statement = "sys_userMapper.deleteUser";
int delete = sqlSession.delete(statement, 4);
sqlSession.close();
System.out.print(delete);
}
public static void GetUserList() {
SqlSessionFactory factory = MybatisUtil.GetFactory();
//默认手动提交
SqlSession sqlSession = factory.openSession(true);
String statement = "sys_userMapper.getUserList";
List<UserEntity> userList = sqlSession.selectList(statement);
sqlSession.close();
System.out.print(userList);
}
使用注解实现
新增接口文件,代码如下
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
public interface IUserMapper {
@Insert("INSERT INTO sys_user(name,age,gender) values(#{name},#{age},#{gender})")
public int Add(UserEntity userEntity);
@Delete("DELETE FROM sys_user where id=#{id}")
public int Delete(int Id);
@Update("UPDATE sys_user SET name=#{name},age=#{age},gender=#{gender} where id=#{id}")
public int Update(UserEntity userEntity);
@Select("SELECT * FROM sys_user")
public List<UserEntity> GetUserList();
}
配置当前接口文件和mybatis环境的对应关系
<mappers>
<!--声明映射文件-->
<!--<mapper resource="usermapper.xml"></mapper>-->
<mapper class="IUserMapper"></mapper>
</mappers>
代码实现
/*使用注解实现*/
public static void Add(int i){
SqlSessionFactory factory = MybatisUtil.GetFactory();
SqlSession sqlSession = factory.openSession(true);
IUserMapper iUserMapper = sqlSession.getMapper(IUserMapper.class);
int insert = iUserMapper.Add(new UserEntity(-1,"注解陆建",11,1));
sqlSession.close();
System.out.print(insert);
}
properties文件单独配置数据库连接
新建db.properties文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dbdemo
username=root
password=lujian2@17
修改mybatis配置文件,配置configuration子节点
<properties resource="db.properties"></properties>
同时,修改数据库连接配置
<configuration>
<properties resource="db.properties"></properties>
<environments default="development">
<!--development开发模式-->
<environment id="development">
<transactionManager type="JDBC"/>
<!--使用连接池-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--声明映射文件-->
<!--<mapper resource="usermapper.xml"></mapper>-->
<mapper class="IUserMapper"></mapper>
</mappers>
</configuration>
字段名与实体类属性名不相同
方法一:sql语句中定义别名
方法二:封装映射关系,数据库字段名 - 实体属性名
<!--根据Id查询user表-->
<select id="getUserById" parameterType="int" resultType="UserEntity" resultMap="editColumn">
SELECT * FROM sys_user where id=#{user_id}
</select>
<!--
resultMap:封装映射关系
id:主键
result:普通字段
-->
<resultMap id="editColumn" type="UserEntity">
<id property="user_id" column="id"></id>
<result property="name" column="name"></result>
<result property="age" column="age"></result>
<result property="gender" column="gender"></result>
</resultMap>