`

Mybatis入门案例(一)

 
阅读更多
一、需求分析
        对用户表进行增删改查操作
          1、根据用户ID查询用户信息
          2、根据用户名称模糊查询用户列表
          3、添加用户

二、工程搭建
    环境准备:
             Jdk:1.7
             Ide:eclipse neon
             Mybatis:3.2.7
              数据库:MySQL 5X
     Mybatis的核心包和依赖包:
              asm-3.3.1.jar
              cglib-2.2.2.jar
              commons-logging-1.1.1.jar
              javassist-3.17.1-GA.jar
              log4j-1.2.17.jar
              log4j-api-2.0-rc1.jar
              log4j-core-2.0-rc1.jar
              mybatis-3.2.7.jar
              slf4j-api-1.7.5.jar
              slf4j-log4j12-1.7.5.jar
     MySQl的驱动包: mysql-connector-java-5.1.7-bin.jar

三、数据库脚本
     create database mybatis
     use mybatis
     create table user(
     id int primary key auto_increment,
     username varchar(50),
     sex varchar(10),
     address varchar(100)
     )
    insert into user(username,sex,address) values(?,?,?)

四、代码实现
  <一>、创建pojo类
        public class User {
private int id;
private String username;// 用户姓名
private String sex;// 性别
private String address;// 地址
      }

  <二>、创建全局配置文件:在config目录下,创建SqlMapConfig.xml文件
       <?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>
    <typeAliases>
<package name="cn.ithuplion"/>
    </typeAliases>
<environments default="development">
<environment id="development">
                        <!--配置JDBC事务控制 -->
<transactionManager type="JDBC" />
                          <!--配置数据源 -->
<dataSource type="POOLED">
<property name="driver"
                                 value="com.mysql.jdbc.Driver" />
<property name="url"
                                 value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="123" />
</dataSource>
</environment>
</environments>
          <!--加载映射文件 -->
<mappers>
<mapper resource="User.xml" />
</mappers>
     </configuration>

  <三>、需求开发
         1、映射文件:在config目录下,创建User.xml
         <?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="test">
         <!--  1.1、根据用户ID查询用户信息 -->
         <select id="findUserById" parameterType="int" resultType="User">
select * from user where id = #{id}
</select>
        <!--1.2、根据用户名称模糊查询用户列表
           -->
<select id="findUserByUsername" parameterType="String" resultType="User">
SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>
         <!-- 1.3、添加用户  -->
<insert id="addUser" parameterType="User">
<selectKey keyProperty="id" resultType="int" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
insert into user(username,sex,address) values(#
                {username},#{sex},#{address})
</insert>
   </mapper>

   <四>、测试代码
         public class UserTest {

@Test
public void findUserByIdTest() throws Exception{
//读取配置文件
//全局配置文件
InputStream inputStream =
                Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory
SqlSessionFactory sessionFactory = new
                SqlSessionFactoryBuilder().build(inputStream);
//SqlSession
SqlSession openSession = sessionFactory.openSession();
User user = openSession.selectOne("test.selectUserById", 10);
System.out.println(user);
openSession.close();
}
@Test
public void findUserByUsernameTest() throws Exception{
//读取配置文件
//全局配置文件
InputStream inputStream =
                Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory
SqlSessionFactory sessionFactory = new
                SqlSessionFactoryBuilder().build(inputStream);
//SqlSession
SqlSession openSession = sessionFactory.openSession();
List<User> list =
                openSession.selectList("test.selectUserByUsername", "张");
System.out.println(list);
openSession.close();
}
@Test
public void insertUserTest() throws Exception{
//读取配置文件
//全局配置文件
InputStream inputStream =
                Resources.getResourceAsStream("SqlMapConfig.xml");
//创建SqlSessionFactory
SqlSessionFactory sessionFactory = new
                SqlSessionFactoryBuilder().build(inputStream);
//SqlSession
SqlSession openSession = sessionFactory.openSession();
User user=new User();
user.setUsername("tom");
user.setSex("男");
user.setAddress("贵阳");
int i = openSession.insert("test.insertUser", user);
System.out.println(i);
openSession.commit();
openSession.close();
}
}

分享到:
评论

相关推荐

    marlett_01_0109.pdf

    marlett_01_0109

    [AB PLC例程源码][MMS_040384]Winder Application.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    stassar_3cd_01_0716.pdf

    stassar_3cd_01_0716

    malpass_02_0907.pdf

    malpass_02_0907

    [AB PLC例程源码][MMS_046459]InView on EtherNet Add On Instruction.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例文档+程序具有输出LC滤波器的三相逆变器的前馈神经网络模型预测控制.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例基于运动学车辆模型的开放式驾驶MPC横向控制算法.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matsumoto_01_1107.pdf

    matsumoto_01_1107

    [AB PLC例程源码][MMS_045719]Rotary Knife with SoftLogix.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    QT第五课-QT系统相关-文件

    代码

    大模型创业者手册-法务与产品合规篇.pdf

    大模型创业者手册-法务与产品合规篇.pdf

    [AB PLC例程源码][MMS_046456]ME Equipment Status Summary Faceplate for PowerFlex, Kinetix, E3 Plus,.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    指标体系数据开发.pptx

    指标体系数据开发

    半导体三极管β值测量仪的设计与制作

    半导体三极管β值测量仪的设计与制作

    [AB PLC例程源码][MMS_047416]ME Faceplates-AOIs for GuardLogix Safety Systems.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_041473]Input Time Stamping.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例

    本文将带你深入了解如何使用OpenCV库实现图片拼接技术,打造令人惊叹的全景图像。通过清晰的步骤讲解和代码示例

    nicholl_01_0508.pdf

    nicholl_01_0508

    lim_3ck_04_0719.pdf

    lim_3ck_04_0719

    DeepSeek入门宝典-个人使用篇.pdf

    DeepSeek入门宝典-个人使用篇.pdf

Global site tag (gtag.js) - Google Analytics