MyBatis操作数据库进行简单功能实现

1、新建一个maven项目,在pom文件中添加mybatis依赖及MySQL依赖
复制代码 org.mybatis mybatis m y b a t i s . v e r s i o n < / v e r s i o n > < / d e p e n d e n c y > < ! − − m y s q l 驱 动 − − > < d e p e n d e n c y > < g r o u p I d > m y s q l < / g r o u p I d > < a r t i f a c t I d > m y s q l − c o n n e c t o r − j a v a < / a r t i f a c t I d > < v e r s i o n > {mybatis.version}</version> </dependency> <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version> mybatis.version</version></dependency><!mysql><dependency><groupId>mysql</groupId><artifactId>mysqlconnectorjava</artifactId><version>{mysql.version} 复制代码 2、新建实体类Users、工具类MybatisUtils、数据访问接口UserDao及它的实现类UserDaoImplUsers类:复制代码private Integer uid;private String userName;public Integer getUid() { return uid;}public void setUid(Integer uid) { this.uid = uid;}public String getUserName() { return userName;}public void setUserName(String userName) { this.userName = userName;}复制代码MybatisUtils类:复制代码private static SqlSessionFactory sqlSessionFactory;/*** 在静态代码块中初始化工厂*/static{ //先查找mybatis的核心配置文件来初始化数据源, //默认从classpath下查找核心配置文件 try { //注意:import org.apache.ibatis.io.Resources; InputStream is = Resources.getResourceAsStream(“mybatis.xml”); //创建一个SqlSessionFactoryBuilder来解析配置文件的信息, // 然后创建出SqlSessionFactory实例 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //build方法传入一个输入流,通过解析后返回一个SqlSessionFactory实例 sqlSessionFactory = builder.build(is); } catch (IOException e) { e.printStackTrace(); }}/*** 提供一个获取SqlSession的方法* @param autoCommit 在获取SQL Session时可以传递一个boolean类型的参数值,* 这个参数的作用似乎用于设置是否手动提交事务还是自动提交事务,* false为手动提交,true为自动提交* @return*/public static SqlSession getSqlSession(boolean autoCommit){ //通过openSession方法来创建一个sqlSession实例, //有了SqlSession,就可以来访问数据库 return sqlSessionFactory.openSession(autoCommit);}复制代码UserDao接口:复制代码 /** * 通过传递一个对象形式保存用户 * @param user /void save(Users user); /* * 通过传递一个map集合保存用户 * @param map /void save2(Map<String, Object> map); /* * 通过传递一个对象修改用户 * @param user /void update(Users user); /* * 通过id删除用户 * @param id /void delete(int id); /* * 通过传递多个参数修改用户 * @param userName * @param uid /void update2(String userName, int uid);/* * 根据id查询一条结果集,返回一个实体对象 * @param uid * @return /Users getUserById(String uid);/* * 根据id查询一条结果集,返回一个map集合 * @param id * @return /Map<String, Object> getUserById2(String id);/* * 查询所有,返回多个Users对象 * @return /List listUser();/* * 根据所有结果集,返回多个map集合 * @return */List<Map<String, Object>> listUser2();复制代码在UserDaoImpl类实现UserDao接口并重写抽象方法:复制代码@Overridepublic void save(Users user) { //获取SqlSession实例,true表示自动提交事务 try(SqlSession session = MybatisUtils.getSqlSession(true)){ //getMapper方法返回一个代理对象,这个代理对象也是实现了UserDao接口 //底层使用JDK动态代理技术 UserDao dao = session.getMapper(UserDao.class); //当执行save方法时,其实调用的时代理对象的save, //它会解析mapper映射配置文件,找到id为save的元素 //并执行其中的sql语句 dao.save(user); }catch (RuntimeException e){ throw e; }}@Overridepublic void save2(Map<String, Object> map) { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)){ sqlSession.getMapper(UserDao.class).save2(map); }catch(RuntimeException e){ throw e; }}@Overridepublic void update(Users user) { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)){ sqlSession.getMapper(UserDao.class).update(user); }catch (RuntimeException e){ throw e; }}@Overridepublic void delete(int id) { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)){ sqlSession.getMapper(UserDao.class).delete(id); }catch (RuntimeException e){ throw e; }}@Overridepublic void update2(String userName, int uid) { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)) { sqlSession.getMapper(UserDao.class).update2(userName, uid); }catch (RuntimeException e){ throw e; }}@Overridepublic Users getUserById(String uid) { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)) { return sqlSession.getMapper(UserDao.class).getUserById(uid); }catch (RuntimeException e){ throw e; }}@Overridepublic Map<String, Object> getUserById2(String id) { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)) { return sqlSession.getMapper(UserDao.class).getUserById2(id); }catch (RuntimeException e){ throw e; }}@Overridepublic List listUser() { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)) { return sqlSession.getMapper(UserDao.class).listUser(); }catch (RuntimeException e){ throw e; }}@Overridepublic List<Map<String, Object>> listUser2() { try(SqlSession sqlSession = MybatisUtils.getSqlSession(true)) { return sqlSession.getMapper(UserDao.class).listUser2(); }catch (RuntimeException e){ throw e; }}复制代码上述这些类的结构如图所示:
在这里插入图片描述
3、在main目录下的resources目录中新建一个mybatis.xml文件,以及mapper文件夹下新建一个UsersMapper.xml(此文件命名规范是实体类名+Mapper)如图所示:
在这里插入图片描述
mybatis.xml:复制代码<?xml version="1.0" encoding="utf-8"?> 复制代码UsersMapper.xml:复制代码<?xml version="1.0" encoding="utf-8"?> insert into user_info(u_name) values(#{userName}) insert into user_info(u_name) values(#{uname}) update user_info set u_name = #{userName} where u_id = #{uid}; delete from user_info where u_id = #{id} update user_info set u_name = #{param1} where u_id = #{param2} select u_id as uid, u_name as userName from user_info2 where u_id = #{id} select u_id, u_name from user_info2 where u_id = #{id} select u_id as uid, u_name as userName from user_info2 select u_id, u_name from user_info2 复制代码4、数据库代码:数据库:mybatis数据表:user_infocreate table user_info( u_id int primary key auto_increment, u_name varchar(50) not null);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值