解决mybatis实体类和数据库列名不匹配的两种办法

解决mybatis实体类和数据库列名不匹配的两种办法

2023年6月23日发(作者:)

解决mybatis实体类和数据库列名不匹配的两种办法我们在实际开发中,会遇到实体类与数据库类不匹配的情况,在开发中就会产⽣各种各样的错误,那么我们应该怎么去解决这⼀类的错误呢?很简单,下⾯我们介绍两种解决⽅法:⾸先我们看⼀下数据库和实体类不匹配的情况:解决办法1当我们查询的时候我们可以在映射⽂件中采取取别名的⽅式: select last_insert_id() insert into user (username,birthday,sex,address) values (#{userName},#{userBirthday},#{userSex},#{userAddress}); update user set username = #{userName},birthday=#{userBirthday},sex=#{userSex},address=#{userAddress} where id=#{id} delete from user where id = #{id} 我们再看看接⼝和测试类接⼝dao中 public interface UserDao {//

查询所有// @Select("select * from user") List findAll();// save void saveUser(User user);// update void updateUser(User user);// delete void deleteUser(Integer userId);//

查询⼀个 User findById(Integer userId);//

根据名称

模糊查询 List fingByName(String username);}实现类:public class MybatisTest {//

初始化值 private InputStream in; private SqlSession sqlSession; private UserDao userDao;//

在测试⽅法执⾏之前执⾏ @Before public void init() throws Exception{//

读取⽂件 in = ourceAsStream(""); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); sqlSession = ssion(); userDao = per(); } @After public void destory() throws Exception{//

提交事务 ();//

释放资源 ();; (); } @Test public void testFindAll() throws Exception{ List users = l(); for (User user : users){ n("对象有:"+user); } }// saveTest @Test public void TestSave() { User user = new User(); rName("modify 修改"); rBirthday(new Date()); n("保存⽅法之前"+user); rSex("男"); rAddress("天津"); er(user); n("保存⽅法之后"+user); }// update @Test public void TestUpdate() { User user = new User(); rId(5); rName("aa"); rBirthday(new Date()); rSex("男"); rAddress("德阳"); User(user); } @Test public void TestDelete(){ User(5); }// findById @Test public void findById(){ User user = Id(3); n(user); }//username模糊查询 @Test public void TestFindByName(){ List users = Name("%李%");// List users = Name("李四"); for (User user:users){ n(user); } } //查询总记录数 @Test public void findTotal(){ int count = tal(); n(count); } //username模糊查询 @Test public void TestQuery(){ QueryVo queryVo = new QueryVo(); User user = new User(); rName("%李%"); r(user); List userByVo = erByVo(queryVo); for (User u:userByVo){ n(u); } }}解决办法2配置查询结果的列名和实体类的属性名对应的关系依然是映射⽂件 我们在⽂件中配置这些配置的作⽤就是与数据库进⾏关联:=注意主键 :实体类的主键id⼀定要和数据库的主键id写对property:是实体类严格区分⼤⼩写column数据库字段严格按照数据库字段配置好这些 我们就开始引⽤。 select last_insert_id() insert into user (username,birthday,sex,address) values (#{userName},#{userBirthday},#{userSex},#{userAddress}); update user set username = #{userName},birthday=#{userBirthday},sex=#{userSex},address=#{userAddress} where id=#{id} delete from user where id = #{id} 就是相当于把每⼀个要执⾏的sql语句的resultType的参数换成resultMap的值。最后在进⾏测试就OK.。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1687516869a16297.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信