工具: 环境: 步骤: 准备工作先做好,导jar包,需要的项目结构 2.将需要的包结构建好 如图: 3.配置文件中,配置数据库相关信息,引入mapper.xml文件 准备工作已做好,开始做基础的增删改查 单个增加 测试是否成功 单个插入完成 UserMapper.java userMapper.xml 测试 批量插入完成 未完待更新 UserMapper.java userMapper.xml UserMapperTest.java 结果: UserMapper.java userMapper.xml 测试 结果: UserMapper.java userMapper.xml UserMapperTest.java 结果: UserMapper.java userMapper.xml 测试 UserMapper.java userMapper.xml 测试 UserMapper.java userMapper.xml 测试 UserMapper.java userMapper.xml 测试
MyBatis做简单的增删改查,超级详细,保证一看就会
 idea
 mysql
 1.导入相关的jar包
 2.将需要的包结构建好
 3.配置文件中,配置数据库相关信息,引入mapper.xml文件
 4.写sql语句
 5.测试
 1.导入相关的jar包
 这里通过maven来管理jar包,在pom.xml中进行配置
 需要的jar包
 mysql的包
 mybayis的包
 junit的测试包<?xml version="1.0" encoding="UTF-8"?> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">   <modelVersion>4.0.0</modelVersion>    <groupId>org.fh</groupId>   <artifactId>mybaits_first</artifactId>   <version>1.0-SNAPSHOT</version>   <packaging>war</packaging>    <name>mybaits_first</name>   <!-- FIXME change it to the project's website -->   <url>https://www.example.com</url>    <properties>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>     <maven.compiler.source>1.7</maven.compiler.source>     <maven.compiler.target>1.7</maven.compiler.target>     <spring.version>4.1.7.RELEASE</spring.version>     <hibernate.version>4.3.11.Final</hibernate.version>   </properties>    <dependencies>     <!-- 配置mybaits-->     <dependency>       <groupId>org.mybatis</groupId>       <artifactId>mybatis</artifactId>       <version>3.4.6</version>     </dependency> <!-- mysql数据库的驱动包 --> <dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>   <version>5.1.6</version> </dependency>  <!-- java单元测试框架 --> <dependency>   <groupId>junit</groupId>   <artifactId>junit</artifactId>   <version>4.12</version> </dependency>   </dependencies> 
 1.maper类
 2.实体类
 3.SqlMapConfig.xml文件,里边配置数据库相关的,包括引入相关的mapper文件
 4.相关的mapper.xml文件
 5.测试类
 
 
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration>     <environments default="development">         <environment id="development">             <transactionManager type="JDBC" />             <!-- 配置数据库连接信息 -->             <dataSource type="POOLED">                 <property name="driver" value="com.mysql.jdbc.Driver" />                 <property name="url" value="jdbc:mysql://localhost:3306/1908a" />                 <property name="username" value="root" />                 <property name="password" value="root" />             </dataSource>         </environment>     </environments>      <mappers>         <!--引入映射文件-->         <mapper resource="mapper/userMapper.xml"/>     </mappers>  </configuration> 增加
 UserMapper.java中,写一个新增的有参数,无返回值的方法
 
 userMapper.xml文件
 超级全面的注释,看不懂多看几遍,绝对明白了
 
 userMapper.xml文件代码<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 为这个mapper指定一个唯一的namespace,      namespace的值习惯上设置成【包名+sql映射文件名】,这样就能够保证namespace的值是唯一的      例如:namespace="org.fh.mapper.dept.DeptMapper"就是org.fh.mapper.dept(包名)+DeptMapper(DeptMapper.xml文件去除后缀) --> <mapper namespace="com.fh.mapper.UserMapper">     <!--单个新增-->     <!--insert标签:定义一个插入方法         id:sql语句唯一标识         parameterType:指定传入参数类型(对应javaBean类型,写原始型会自动包装为包装类)         resultType:返回结果类型         #{}:{}中默认是model类中的属性名,占位符,起到占位作用,如果传入的是原始型,那么括号中的变量名称可以随意定义 -->     <insert id="insertUser" parameterType="com.fh.model.User" useGeneratedKeys="true" keyProperty="id">          <!-- 执行 LAST_INSERT_ID,返回自增的主键 keyProperty:keyProperty中的值与model中的id属性名保持一致                order:相当于insert语句的执行顺序,在insert前执行时before,                之后是afterresultType:keyProperty中属性的类型                可以不写          -->         <selectKey resultType="int" order="AFTER" keyProperty="userId">select LAST_INSERT_ID() </selectKey>         <!--         t_user_idea数据库表名         (user_id,user_name,user_sex)与数据库字段名一样         (#{userId},#{username},#{sex}与实体类中的属性名保持一致-->         insert  into  t_user_idea(user_id,user_name,user_sex) values             (#{userId},#{username},#{sex})     </insert> </mapper> 
 UserMapperTest.java@Test     public void insetUserTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();         //        //进行赋值         User user = new User();         // dept.setDeptId(1);         user.setUsername("部门22");         user.setSex(1);         //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         int count = sqlSession.insert("com.fh.mapper.UserMapper.insertUser",user);         //手动提交事务,因为mysql自动提交时间不确定。         sqlSession.commit();         System.out.println("插入数据条数:"+count);         //关闭session会话         sqlSession.close();      } 批量插入
 //批量插入   int batchInsertUser(List<User> userList); 
 
 <!--批量新增-->     <insert id="batchInsertUser" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">          <!-- 执行 LAST_INSERT_ID,返回自增的主键 keyProperty:                order:相当于insert语句的执行顺序,在insert前执行时before,                之后是afterresultType:keyProperty中属性的类型                可以不写          -->          insert  into t_user_idea(user_id,user_name,user_sex) values         <foreach collection="list" item="user" index="index" separator=",">             (#{user.userId},#{user.username},#{user.sex})         </foreach>     </insert> 
 UserMapperTest.java/**      * 批量插入      * @throws IOException      */     @Test     public void batchInsertUserTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();         //        //进行赋值         List<User> userList = new ArrayList<>();         for (int i = 0; i < 10; i++) {             User user = new User();             user.setUsername("username" + i);             user.setSex(1);             userList.add(user);         }         //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         int count = sqlSession.insert("com.fh.mapper.UserMapper.batchInsertUser",userList);         //手动提交事务,因为mysql自动提交时间不确定。         sqlSession.commit();         System.out.println("插入数据条数:"+count);         //关闭session会话         sqlSession.close();     } 通过id查询数据
//通过ID进行查询     User findUserById(Integer userId);  <!--根据id查询信息-->     <!--select标签:定义一个查询方法         id:sql语句唯一标识         parameterType:指定传入参数类型(对应javaBean类型,写原始型会自动包装为包装类)         resultType:返回结果类型         #{}:{}中默认是model类中的属性名,占位符,起到占位作用,如果传入的是原始型,那么括号中的变量名称可以随意定义 -->     <select resultType="com.fh.model.User" parameterType="integer" id="findUserById">         select user_id as userId,user_name as username,user_sex as sex from t_user_idea where user_id = #{userId}     </select>  @Test     public void findUserByIdTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)          SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();          //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         //这里调用的是selectOne方法,只能查询一条指定的数据,         // 如果用它查询多条数据,会报异常(查询多条要用selectList)         User user = sqlSession.selectOne("com.fh.mapper.UserMapper.findUserById",11);         System.out.println(user);         //关闭session会话         sqlSession.close();      } 
 
查询所有信息
//查询所有信息     User findAllUser();  <!--查询所有信息-->      <select resultType="com.fh.model.User"  id="findAllUser">         select user_id as userId,user_name as username,user_sex as sex from t_user_idea     </select> 
 UserMapperTest.java /**      * 查询所有信息      * @throws IOException      */     @Test     public void findAllUserTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();          //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         //这里调用的是selectOne方法,只能查询一条指定的数据,         // 如果用它查询多条数据,会报异常(查询多条要用selectList)         List<User> userList = sqlSession.selectList("com.fh.mapper.UserMapper.findAllUser");         for (User user:userList) {             System.out.println(user);         }         //关闭session会话         sqlSession.close();     } 
 
通过username进行模糊查询
//通过name进行模糊查询     User findUserByUserName(String username); <!--根据username模糊查询User信息-->     <select id="findUserByUserName" resultType="com.fh.model.User" parameterType="String">          <!--               错误1:               如果使用select * from 必须保证数据库字段名和属性名保持一样               select * from t_dept where dept_name like concat("%",#{deptName},"%")               错误2:               数据库字段名和属性名不一样:通过as进行设置                select dept_id,dept_name,dept_sex from t_dept where dept_name like concat("%",#{deptName},"%")               -->         select user_id as userId,user_name as username,user_sex as sex from t_user_idea where user_name like concat("%",#{username},"%")     </select>  /**      * 通过name进行模糊查询      * @throws IOException      */     @Test     public void findUserByUserNameTest() throws IOException {         String resource="SqlMapConfig.xml";         //读取配置文件         InputStream inputStream = Resources.getResourceAsStream(resource);         //连接上数据库         SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);         //开启会话         SqlSession sqlSession = factory.openSession();         //第一个参数定位带ClothingMapper.xml的findClothingByName方法         //第二个参数的是findClothingByName方法的参数         List<User> userList =  sqlSession.selectList("com.fh.mapper.UserMapper.findUserByUserName","2");         for (User user:userList) {             System.out.println(user);         }         System.out.println(userList.size());     } 
 
通过username和sex进行条件查询
//通过username和sex进行模糊查询     User queryUserByNameAndSexList(User user); <!--条件查询-->     <select id="queryUserByNameAndSexList" parameterType="com.fh.model.User" resultType="com.fh.model.User">          <!--                      错误1:                      如果使用select * from 必须保证数据库字段名和属性名保持一样,这样子是查不出来数据的                      select * from t_dept where dept_name like concat("%",#{deptName},"%")                      错误2:                      数据库字段名和属性名不一样:通过as进行设置,如下就是错误的,查不出来数据                       select dept_id,dept_name,dept_sex from t_dept where dept_name like concat("%",#{deptName},"%")                      -->         select user_id as userId,user_name as username,user_sex as sex from t_user_idea         <where>             <if test=" username != null and username != '' ">                 and user_name like concat('%',#{username},'%')             </if>             <if test="sex != null">                 and user_sex = #{sex}             </if>         </where>      </select> 
 UserMapperTest.java /**      * 通过username和sex进行条件查询      * @throws IOException      */     @Test     public void queryUserByNameAndSexListTest() throws IOException {         String resource="SqlMapConfig.xml";         //读取配置文件         InputStream inputStream = Resources.getResourceAsStream(resource);         //连接上数据库         SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);         //开启会话         SqlSession sqlSession = factory.openSession();         //模糊查询的条件         User user = new User();         user.setUsername("1");         user.setSex(1);         //第一个参数定位带ClothingMapper.xml的findClothingByName方法         //第二个参数的是findClothingByName方法的参数         List<User> userList =  sqlSession.selectList("com.fh.mapper.UserMapper.queryUserByNameAndSexList",user);         for (User user1:userList) {             System.out.println(user1);         }         System.out.println(userList.size());     } 删除数据
 //通过ID删除数据     void deleteUserById(Integer userId); <!--删除数据-->     <delete id="deleteUserById" parameterType="int">         delete from t_user_idea where user_id = #{userId}     </delete> 
 UserMapperTest.java /**      * 删除      * @throws IOException      */     @Test     public void deleteDeptTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)          SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();          //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         //这里调用的是selectOne方法,只能查询一条指定的数据,         // 如果用它查询多条数据,会报异常(查询多条要用selectList)         sqlSession.delete("com.fh.mapper.UserMapper.deleteUserById",8);          sqlSession.commit();         //关闭session会话         sqlSession.close();     } 修改
  //修改     void updateUser(User user);  <!--修改数据-->    <update id="updateUser" parameterType="com.fh.model.User">          update t_user_idea         set user_name=#{username},user_sex=#{sex}         where user_id = #{userId}      </update> 
 UserMapperTest.java  /**      * 修改      * @throws IOException      */     @Test     public void updateDeptTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();          //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         User user = new User();         //必须写id,这样才可以修改         user.setUserId(7);         user.setUsername("张三");         user.setSex(0);         sqlSession.update("com.fh.mapper.UserMapper.updateUser",user);         sqlSession.commit();         //关闭session会话         sqlSession.close();     } 批量删除
  //批量删除     int deleteUserByIds(List<Integer> idList);  <!--批量删除-->     <delete id="deleteUserByIds" parameterType="list">         delete from t_user_idea         where user_id in         <!--             open:循环开始拼接的字符             close:循环结束拼接的字符         -->         <foreach collection="list" item="id" open="(" close=")" separator=",">             #{id}         </foreach>     </delete> 
 UserMapperTest.java /**      * 批量删除      */      @Test     public void deleteUserByIdsTest() throws IOException {         //从项目的resources文件夹,获取配置信息(url,username,password,mysqlDriver,ClothingMapper.xml文件路径)         String resource="SqlMapConfig.xml";         InputStream inputStream= Resources.getResourceAsStream(resource);         //创建工厂(连接mysql数据库)         SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);         //通过工厂创建会话         SqlSession sqlSession=factory.openSession();          ArrayList<Integer> idList = new ArrayList<>();         idList.add(13);         idList.add(14);         idList.add(15);          //第一个参数:所调用的sql语句:namespace+‘.’+SqlID         //第二个参数:传入的参数         //int row =  sqlSession.deleteUserByIds("com.fh.mapper.UserMapper.deleteUserById",idList);         int row = sqlSession.delete("com.fh.mapper.UserMapper.deleteUserByIds",idList);         sqlSession.commit();         //关闭session会话         sqlSession.close();     } 
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
官方软件产品操作指南 (170)