MyBatis3
博文目录
在上一篇博客中我们已经实现了对简单数据库的查询,在本篇博客中,我们继续深入探讨MyBatis操作数据库的更深层的东西(木有高深的东西,一练就会)!
问题:
User user=(User) session.selectOne("com.cn.mapper.UserMapper.findById", 2);
我们的selectOne方法可以接收一个或两个参数,第一个参数是我们的查询方法,第二个参数使我们给方法传入的参数,并且MyBatis只支持传入一个参数!
如果我们要通过用户名和用户密码来查一个用户(假设他俩可以唯一确定一个值),该怎么实现呢??
MyBatis要求,如果你要传入多个选择条件,请封装成一个对象给我传进来!
这是很不方便的,并且每次查询我都要写那么长的完全限定名也是不爽的,我们使用下面的一种新的方式进行查询操作!
在mapper包中建立与我们配置的UserMapper.xml名称相同的一个接口:UserMapper.java,并且里面提供一个与我们配置的相同的方法:findById(int id);
package com.cn.mapper; import com.cn.pojo.User; //UserMapper接口名=配置的UserMapper.xml的名 public interface UserMapper { //方法对应UserMapper.xml中的select中的ID=findById,参数对应配置中的parameterType类型,返回值也对应 public User findById(int id); }
实现另一种方式的查询:
package com.cn.test; import java.io.Reader; 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 com.cn.mapper.UserMapper; import com.cn.pojo.User; public class MyBatis { public static void main(String[] args) throws Exception { Reader reader=Resources.getResourceAsReader("mybatis.xml"); SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader); SqlSession session=factory.openSession(); //MyBatis自动帮你生成接口的实现类 UserMapper userMapper=session.getMapper(UserMapper.class); //使用接口实现类对象调用方法获取查询结果 User user=userMapper.findById(1); System.out.println(user.getUsername()); /*User user=(User) session.selectOne("com.cn.mapper.UserMapper.findById", 2); System.out.println(user.getUsername());*/ session.close(); } }
下面我们使用这种方式进行其他数据库操作:
添加操作
在UserMapper.xml中添加一条语句:
<insert id="save" parameterType="User"> insert into t_user(username,password) values(#{username},#{password}) </insert>
在UserMapper.java中添加一个方法:
public void save(User user);
测试类的main方法:
package com.cn.test; import java.io.Reader; 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 com.cn.mapper.UserMapper; import com.cn.pojo.User; public class MyBatis { public static void main(String[] args) throws Exception { Reader reader=Resources.getResourceAsReader("mybatis.xml"); SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader); SqlSession session=factory.openSession(); User user=new User(); user.setUsername("mybatis"); user.setPassword("000000"); UserMapper userMapper=session.getMapper(UserMapper.class); userMapper.save(user); //insert update delete操作都需要事务的支持,事务必须提交后才有效 //事务提交有两种方式:1,下面这种,2,在上面的factory.openSession()参数列表中写个true:openSession(true);表示自动提交事务 session.commit(); session.close(); } }
下面的是完整的CURD配置
<?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.cn.mapper.UserMapper"> <select id="findById" parameterType="int" resultType="User"> select id,username,password from t_user where id = #{id} </select> <insert id="save" parameterType="User"> insert into t_user(username,password) values(#{username},#{password}) </insert> <update id="edit" parameterType="User"> update t_user set username=#{username},password=#{password} where id=#{id} </update> <delete id="del" parameterType="int"> delete from t_user where id=#{id} </delete> <select id="findByUsernamePassword" parameterType="User" resultType="User"> select id,username,password from t_user where username=#{username} and password=#{password} </select> </mapper>
package com.cn.mapper; import com.cn.pojo.User; public interface UserMapper { public User findById(int id); public void save(User user); public void edit(User user); public void del(int id); public User findByUsernamePassword(User user); }
用这种方法可以解决上面提到的问题:多条件查询。使用原始的也是可以的,他俩基本没啥区别!
这篇博文先写到这里,下一篇继续介绍查询:连接查询!
相关推荐
Mybatis入门教程,让你瞬间明白Mybatis的配置方法。
Springboot整合Mybatis MyBatis 的前身是 Apache 的开源项目 iBatis。MyBatis 几乎可以代替 JDBC,是一个支持普通 SQL 查询,存储过程和高级映射的...可以帮助读者轻松掌握代码的内容,快速入门,持续深化,举一反三。
13-Mybatis(学习2天) MyBatis_day01;mybatis简介--入门 MyBatis_day02.输入输出映射.动态sql-关联查询.myBatis整合spring,逆向工程 14-SpringMVC(学习2天) SpringMvc_day01.spring入门-springMVC三大核心器...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
7. SpringBoot整合Mybatis 8. SpringBoot整合Junit 9. SpringBoot整合Redis 阶段二: SpringBoot核心原理 1. 起步依赖原理分析 2. 自动配置原理解析 3. 自定义起步依赖并实现自动配置 4. 事件监听 5. 初始化流程 6. ...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
同时,它还集成了 MyBatis 数据库持久层框架,方便毕业生进行数据库操作和管理。 在功能方面,MeyboMail Web 提供了丰富的邮件发送功能。毕业生可以使用它来实现群发邮件、邮件合并和邮件追踪等功能。这些功能可以...
3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...
用于练手的SSM小项目,从数据库表的SQL语句,后台DAO层代码编写,前端使用Bootstrap3搭建一个简单的后台页面,数据的CRUD通过SSM框架进行完成,可以很好地用来巩固和复习应用SSM框架做项目的过程。.zip SSM框架学习...
SSM框架学习宝典:入门、进阶、精通,全方位代码项目资 一、探索SSM的无限可能 SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您...