zoukankan      html  css  js  c++  java
  • MyBatis学习(一)一个简单的例子

    mybatis入门例子

    开发步骤:

    1.创建java工程
    2.加入jar包(依赖包、驱动包)
    3.创建sqlMapConfig.xml
    4.创建数据库,数据库表USER_C,插入测试记录
    5.创建PO对象 user.java
    6.创建映射文件 User.xml
    7.创建测试类

    占位符:

    iBatis  #id#

    myBatis  #{id}

    1、创建web工程

    2、导入jar包:

    mybatis-3.2.2.jar
     
    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
    slf4j-api-1.7.5.jar
    slf4j-log4j12-1.7.5.jar
     

    3、配置文件 sqlMapConfig.xml :

    事务:JDBC/MANAGED

    数据源:UNPOOLED/POOLED/JNDI

    复制代码
     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE configuration
     3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
     5 <configuration>
     6     <environments default="development">
     7         <environment id="development">
     8             <transactionManager type="JDBC"/>
     9             <dataSource type="POOLED">
    10                 <property name="driver" value="com.mysql.jdbc.Driver"/>
    11                 <property name="url" value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=UTF-8"/>
    12                 <property name="username" value="root"/>
    13                 <property name="password" value="root"/>
    14             </dataSource>
    15         </environment>
    16     </environments>
    17 
    18     <mappers>
    19         <mapper resource="cn/itcast/mybatis/domain/User.xml"/>
    20     </mappers>
    21 </configuration>
    复制代码

    4.创建数据库

    创建mybatisdb数据库
    创建User表

    create table USER_C

    (

       ID                   varchar(40) not null,

       NAME                 varchar(30),

       AGE                  int,

       ADDRESS              varchar(200),

       primary key (ID)

    );

    insert  into `user_c`(`id`,`name`,`age`,`address`)

    values ('1','夏言',73,'桂州村'),

    ('2','严嵩',87,'分宜县城介桥村'),

    ('3','徐阶',80,'明松江府华亭县'),

    ('4','高拱',66,'河南省新郑市高老庄村'),

    ('5','张居正',58,'江陵');

    5、映射文件 cn.itcast.mybatis.domain.User.xml :

    按 Ctrl+C 复制代码
    按 Ctrl+C 复制代码

    6、PO对象 User.java :

    复制代码
     1 package cn.itcast.domain;
     2 
     3 public class User {
     4     private String id;
     5     private String name;
     6     private Integer age;
     7     private String address;
     8     public String getAddress() {
     9         return address;
    10     }
    11     public void setAddress(String address) {
    12         this.address = address;
    13     }
    14     public String getId() {
    15         return id;
    16     }
    17     public void setId(String id) {
    18         this.id = id;
    19     }
    20     public String getName() {
    21         return name;
    22     }
    23     public void setName(String name) {
    24         this.name = name;
    25     }
    26     public Integer getAge() {
    27         return age;
    28     }
    29     public void setAge(Integer age) {
    30         this.age = age;
    31     }
    32     @Override
    33     public String toString() {
    34         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    35     }
    36     
    37 }
    复制代码

    7、测试类:

    复制代码
     1 package cn.itcast.test;
     2 
     3 import java.io.IOException;
     4 import java.io.InputStream;
     5 import java.util.List;
     6 import java.util.UUID;
     7 
     8 import org.apache.ibatis.io.Resources;
     9 import org.apache.ibatis.session.SqlSession;
    10 import org.apache.ibatis.session.SqlSessionFactory;
    11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    12 import org.junit.Before;
    13 import org.junit.Test;
    14 
    15 import cn.itcast.domain.User;
    16 
    17 public class TestMybatis {
    18 
    19     SqlSessionFactory sqlSessionFactory;
    20     
    21     @Before
    22     public void initFactory() throws IOException
    23     {
    24         String resource = "sqlMapConfig.xml";
    25 
    26         InputStream inputStream = Resources.getResourceAsStream(resource);
    27 
    28         sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    29     }
    30     
    31     @Test
    32     public  void testListAll()
    33     {
    34         SqlSession session=sqlSessionFactory.openSession();
    35         List<User> users=session.selectList("cn.itcast.mybatis.listAll");
    36         System.out.println(users.size());
    37     }
    38     @Test
    39     public void testQueryOne()
    40     {
    41         SqlSession session=sqlSessionFactory.openSession();
    42         User user=session.selectOne("cn.itcast.mybatis.getOne", 1);
    43         System.out.println(user);
    44     }
    45     //事务需要程序员处理
    46     @Test
    47     public void testInsertOne()
    48     {
    49         User u=new User();
    50         u.setId(UUID.randomUUID().toString());
    51         u.setName("sbsbb");
    52         u.setAge(18);
    53         u.setAddress("china");
    54         SqlSession session=sqlSessionFactory.openSession();
    55         int count=session.insert("cn.itcast.mybatis.insertOne", u);
    56         session.commit();
    57         System.out.println(count);
    58     }
    59     
    60     @Test
    61     public void testUpdateOne()
    62     {
    63         SqlSession session=sqlSessionFactory.openSession();
    64         User u=new User();
    65         //u=session.selectOne("cn.itcast.mybatis.getOne", "2");
    66         u.setId("2");
    67         u.setName("clclclclclcfei");
    68         u.setAge(100);
    69         u.setAddress("USA");
    70         int count=session.update("cn.itcast.mybatis.updateOne", u);
    71         session.commit();
    72         System.out.println(count);
    73     }
    74     @Test
    75     public void testDeleteOne()
    76     {
    77         SqlSession session=sqlSessionFactory.openSession();
    78         User u=new User();
    79         u.setId("2");
    80         int count=session.delete("cn.itcast.mybatis.deleteOne", u);
    81         session.commit();
    82         System.out.println(count);
    83     }
    84     
    85     
    86     
    87 }
    复制代码
  • 相关阅读:
    阅读笔记
    个人总结
    《软件需求(第二版)》阅读笔记02
    《软件需求(第二版)》阅读笔记01
    问题账户需求分析
    2017年秋季个人阅读计划
    阅读笔记一之《软件需求与分析》
    每日总结1
    开发体会(模块3.商品分类管理)
    个人总结
  • 原文地址:https://www.cnblogs.com/cxxjohnson/p/4938774.html
Copyright © 2011-2022 走看看