使用MyBatis实现简单的增删改查(回显新增数据的id,必须是主键自增)

mac2025-12-21  8

项目的框架(SE形式的)

添加用户:

  UserMapper接口:

/** * 添加用户信息 * @param user * @return */ public int addUser(User user);

UserMapper映射文件:

<!--若数据库支持主键自增,设置了useGeneratedKeys="true" keyProperty="id" 就可以将添加之后的id返回到传递的对象中去 --> <insert id="addUser" useGeneratedKeys="true" keyProperty="id"> insert into user values(null,#{username},#{password},#{email}) </insert>

测试代码:

@Test public void t3() { SqlSession session = sqlFa.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); int user = mapper.addUser(new User(null,"798","asdf","sadf")); System.out.println(user); session.commit(); }

删除,修改,一样没区别

查询:

          一个或多个对象:

/** * 添加用户信息 * @param user * @return */ public int addUser(User user); /** * 查询所有的用户信息 * @return */ public List<User> getUserAll();

        

<select id="getUserById" resultType="User"> select * from user where id=#{id} </select> <select id="getUserAll" resultType="User"> select * from user </select>

 注意:这里即使是查询多个他的返回值类型依然是对象,但是实际会返回一个List集合

@Test public void t1() { SqlSession session = sqlFa.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.getUserById(2); System.out.println(user); session.commit(); } @Test public void t2() { SqlSession session = sqlFa.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); List<User> user = mapper.getUserAll(); System.out.println(user); session.commit(); }

MyBatis核心配置文件:

<?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> <!-- 数据源文件,类路径下 --> <properties resource="db.properties"></properties> <settings> <!-- 将下划线转换成驼峰命名 --> <setting name="mapUnderscoreToCamelCase" value="true" /> <!-- 自动映射默认值PARTIAL NONE关闭自动映射 --> <setting name="autoMappingBehavior" value="PARTIAL" /> <!-- 开启延迟加载 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 设置加载的数据是按需还是全部 --> <setting name="aggressiveLazyLoading" value="false" /> </settings> <typeAliases><!-- 可以简写增删改的返回值类型 --> <package name="com.thekingqj.bean"/> </typeAliases> <environments default="development"> <environment id="development"> <!-- 事务管理器JDBC --> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${db.driver}" /> <property name="url" value="${db.url}" /> <property name="username" value="${db.username}" /> <property name="password" value="${db.password}" /> </dataSource> </environment> </environments> <!-- 别名处理,这样在Mapper配置文件中返回值类型可以直接写类名了 --> <mappers> <!-- 可以直接映射配置文件的名称 --> <!-- <mapper resource="UserMapper.xml" /> --> <!--批量注册,这种方式要求SQL映射文件名必须和接口名相同并且在同一目录下 --> <mapper class="com.thekingqj.dao.UserMapper"/> <mapper class="com.thekingqj.dao.DeptMapper"/> </mappers> </configuration>

 

最新回复(0)