mybatis的CRUD操作

xiaoxiao2021-02-28  115

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>
转载请注明原文地址: https://www.6miu.com/read-74713.html

最新回复(0)