mybatis的增删改查代码如下demo:
User.java
package com.rookie.bigdata.domain; import lombok.Data; import java.io.Serializable; /** * @author * @date 2018/10/21 */ //Data注解可以省略get和set方法 @Data public class User implements Serializable{ // 用户标识 private Integer id; // 用户姓名 private String name; // 用户性别 private String sex; // 用户年龄 private Integer age; // 无参数构造器 public User() { super(); } // 有参数构造器 public User( String name, String sex, Integer age) { super(); this.name = name; this.sex = sex; this.age = age; } }
UserMapper.java
package com.rookie.bigdata.mapper; import com.rookie.bigdata.domain.User; /** * @author * @date 2018/10/21 */ public interface UserMapper { void save(User user); void saveUser(User user); User selectUser(Integer id); void updateUser(User user); void deleteUser(Integer id); }
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.rookie.bigdata.mapper.UserMapper"> <insert id="save" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true"> INSERT INTO BS_USER(name,sex,age) VALUES(#{name},#{sex},#{age}) </insert> <!-- parameterType="user"表示该插入语句需要一个user对象作为参数 useGeneratedKeys="true"表示使用自动增长的主键,即使用JDBC的getGeeratedKeys方法获取由数据库生疮内部生成的主键,默认为false keyProperty唯一标记的一个属性,mybatis会通过getGerneratedKeys的返回值设置它的键值--> <insert id="saveUser" parameterType="com.rookie.bigdata.domain.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO BS_USER(name,sex,age) VALUES(#{name},#{sex},#{age}) </insert> <!-- select操作 parameterType="int"表示该查询语句需要一个int类型的参数 resultType="com.rookie.bigdata.domain.User"表示返回的是一个user对象 --> <select id="selectUser" parameterType="int" resultType="com.rookie.bigdata.domain.User"> SELECT * FROM BS_USER WHERE id = #{id} </select> <!-- update操作 parameterType="com.rookie.bigdata.domain.User"表示该更新语句需要一个user对象作为参数--> <update id="updateUser" parameterType="com.rookie.bigdata.domain.User"> UPDATE BS_USER SET name = #{name},sex = #{sex},age = #{age} WHERE id = #{id} </update> <!-- delete操作 parameterType="int"表示该查询语句需要一个int类型的参数--> <delete id="deleteUser" parameterType="int"> DELETE FROM BS_USER WHERE id = #{id} </delete> </mapper>
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"> <!-- XML 配置文件包含对 MyBatis 系统的核心设置 --> <configuration> <!-- <typeAliases> <typeAlias alias="user" type="com.rookie.bigdata.domain.User"/> </typeAliases>--> <environments default="mysql"> <!-- 环境配置,即连接的数据库。 --> <environment id="mysql"> <!-- 指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 --> <transactionManager type="JDBC"/> <!-- dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- mappers告诉了MyBatis去哪里找持久化类的映射文件 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> </configuration>
测试代码UserMapperTest.java
package com.rookie.bigdata.mapper; import com.rookie.bigdata.domain.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.io.InputStream; /** * @author * @date 2018/10/21 */ public class UserMapperTest { public SqlSession session; @Before public void before() throws IOException { // 读取mybatis-config.xml文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 初始化mybatis,创建SqlSessionFactory类的实例 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder() .build(inputStream); // 创建Session实例 session = sqlSessionFactory.openSession(); } @Test public void saveUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); mapper.saveUser(new User("zhangsan","男",23)); session.commit(); // 关闭Session session.close(); } @Test public void selectUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(5); // 提交事务 session.commit(); // 关闭Session session.close(); System.out.println(user); } @Test public void updateUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(5); user.setAge(21); mapper.updateUser(user); // 提交事务 session.commit(); // 关闭Session session.close(); System.out.println(user); } @Test public void deleteUser() throws Exception { UserMapper mapper = session.getMapper(UserMapper.class); mapper.deleteUser(5); session.commit(); // 关闭Session session.close(); } }
至此简单的增删改查已经全部结束