zoukankan      html  css  js  c++  java
  • 01.MyBatis入门

    MyBatis入门:

    第一天接触Mybatis,总结一下入门案例的流程:

    首先导入Mybatis的jar包和数据库的驱动包

    1.创建数据表和实体类

    2.创建一个表和实体类映射的xml配置文件,具体配置如下:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper
     3   PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5   <!-- namespace是映射文件的一个唯一标识,用来定位是哪个映射文件 -->
     6 <mapper namespace="com.offcn.entity.personMapper">
     7     <!-- id是一条sql语句的唯一标识,parameterType是sql语句中的参数类型 ,resultType是sql语句将要返回的结果的类型 -->
     8     <!-- 如果输入的类型是基本数据类型(八种基本数据类型 + string)则#{xxx}可以随意写,但是为了规范最好不要,如果不是基本数据类型则必须写实体类中的字段名 -->
     9   <select id="selectPersonById" parameterType="int" resultType="com.offcn.entity.Person">
    10     select * from Person where id = #{id}
    11   </select>
    12   <!-- sql语句后边不加分号 -->
    13   
    14   <insert id="insertPerson" parameterType="com.offcn.entity.Person">
    15       insert into Person (id,name,bir,address) value (#{id},#{name},#{bir},#{address})
    16   </insert>
    17   
    18   <delete id="deletePersonById" parameterType="int">
    19       delete from Person where id = #{id}
    20   </delete>
    21   
    22   <update id="updatePerson" parameterType="com.offcn.entity.Person">
    23       update person set name=#{name},bir=#{bir},address=#{address} where id = #{id}
    24   </update>
    25   
    26   <select id="selectPerson" resultType="com.offcn.entity.Person">
    27       select * from person
    28   </select>
    29   
    30 </mapper>

    3.编写全局配置文件conf.xml,包含数据库信息和映射文件信息,代码如下:

     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     <!-- 环境的配置,可以配置多个,可以通过default该换id定位使用哪个环境,也可以通过 sessionFactory的第二个参数设置-->
     7   <environments default="development">
     8     <environment id="development">
     9         <!-- 配置事物的提交方式,一共有两种
    10             1.JDBC:利用JDBC的方式处理事务,需要手动提交(commit,rollback,close)
    11             2.MANAGED:将事务由其他组件托管(spring,jobss),默认会关闭连接,如果想要自动关闭连接需要配置一个属性
    12              <property name="driver" value="false"/>
    13          -->
    14       <transactionManager type="JDBC"/>   <!-- 后边的斜杠不能省略 -->
    15      
    16       <!-- 数据源格式类型:
    17           1.POOLED:数据连接池模式
    18           2.UNPOOLED:传统的jdbc模式,每次都需要自己手动创建关闭
    19           3.JNDI:从tomcat中获取一个内置的数据库连接池
    20        -->
    21       <dataSource type="POOLED">
    22         <property name="driver" value="com.mysql.jdbc.Driver"/>
    23         <property name="url" value="jdbc:mysql://localhost:3306/person?serviceTimeout=UTC"/>
    24         <property name="username" value="root"/>
    25         <property name="password" value="root"/>
    26       </dataSource>
    27     </environment>
    28   </environments>
    29   <mappers>
    30     <mapper resource="com/offcn/entity/personMapper.xml"/>
    31   </mappers>
    32 </configuration>

    3.写一个测试类,进行增删改查的测试,步骤如下:

      1 package com.offcn.entity;
      2 
      3 import java.io.IOException;
      4 import java.io.Reader;
      5 import java.util.Date;
      6 import java.util.List;
      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 
     13 public class Test {
     14     public static void main(String[] args) throws IOException {
     15     //    selectPerosnById();
     16         //insertPerson();
     17         //deletePersonById();
     18         //updatePerson();
     19         selectPerson();
     20     }
     21     //根据id查询
     22     public static void selectPerosnById() throws IOException {
     23         //读取conf.xml 配置文件
     24         Reader reader = Resources.getResourceAsReader("conf.xml");
     25         //创建sqlSessionFactory
     26         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
     27         //创建session---> connection
     28         SqlSession session = sessionFactory.openSession();
     29         //statement ---> statement
     30         String sql = "com.offcn.entity.personMapper." + "selectPersonById";
     31         //查询一条数据
     32         Person person = session.selectOne(sql,1);
     33         //提交事务
     34         session.commit();
     35         System.out.println(person);
     36         //关闭连接
     37         session.close();
     38         
     39     }
     40     //增加一条数据
     41     public static void insertPerson() throws IOException {
     42         //读取conf.xml文件
     43         Reader reader = Resources.getResourceAsReader("conf.xml");
     44         //创建一个sqlSessionFactory
     45         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
     46         //创建一个session对象
     47         SqlSession session = sessionFactory.openSession();
     48         //定位sql语句
     49         String statement = "com.offcn.entity.personMapper." + "insertPerson";
     50         //执行sql语句
     51         Person person = new Person("李四",new Date(),"上海普陀");
     52         int count = session.insert(statement,person);
     53         //提交事务
     54         session.commit();
     55         System.out.println("增加"+count+"条数据");
     56         //关闭连接
     57         session.close();
     58     }
     59     //根据id删除一条数据
     60     public static void deletePersonById() throws IOException {
     61         //读取conf.xml文件
     62         Reader reader = Resources.getResourceAsReader("conf.xml");
     63         //获取sqlSessionFactory
     64         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
     65         //获取session对象
     66         SqlSession session = sessionFactory.openSession();
     67         //定位sql语句
     68         String statement = "com.offcn.entity.personMapper."+"deletePersonById";
     69         //执行sql语句
     70         int count = session.delete(statement,2);
     71         //提交事务
     72         session.commit();
     73         System.out.println("删除"+count+"条数据");
     74         //关闭连接
     75         session.close();
     76     }
     77     //更改数据
     78     public static void updatePerson() throws IOException {
     79         //读取conf.xml
     80         Reader reader = Resources.getResourceAsReader("conf.xml");
     81         //创建sqlSessionFactory
     82         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
     83         //创建sqlsession对象
     84         SqlSession session = sessionFactory.openSession();
     85         //定位sql
     86         String statement = "com.offcn.entity.personMapper." + "updatePerson";
     87         //执行sql语句
     88         Person person = new Person();
     89         person.setName("王五");
     90         person.setBir(new Date());
     91         person.setAddress("南京");
     92         person.setId(1);
     93         int count = session.update(statement,person);
     94         //提交事务
     95         session.commit();
     96         System.out.println("更改" + count +"条数据成功");
     97         //关闭连接
     98         session.close();
     99     }
    100     //查询所有数据
    101     public static void selectPerson() throws IOException {
    102         //读取conf.xml
    103         Reader reader = Resources.getResourceAsReader("conf.xml");
    104         //创建sqlSessionFactory
    105         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    106         //创建sqlsession对象
    107         SqlSession session = sessionFactory.openSession();
    108         //定位sql
    109         String statement = "com.offcn.entity.personMapper." + "selectPerson";
    110         //执行sql语句
    111         List<Person> persons = session.selectList(statement);
    112         //提交事务
    113         session.commit();
    114         for (Person person : persons) {
    115             System.out.println(person);
    116         }
    117         
    118         //关闭连接
    119         session.close();
    120     }
    121 }

    到此就完成了一个Mybatis的入门程序。

  • 相关阅读:
    现代软件工程 第一章 概论 第3题——韩婧
    现代软件工程 第一章 概论 第2题——韩婧
    小组成员邓琨、白文俊、张星星、韩婧
    UVa 10892 LCM的个数 (GCD和LCM 质因数分解)
    UVa 10780 幂和阶乘 求n!中某个因子的个数
    UVa 11859 除法游戏(Nim游戏,质因子)
    Codeforces 703C Chris and Road 二分、思考
    Codeforces 703D Mishka and Interesting sum 树状数组
    hdu 5795 A Simple Nim SG函数(多校)
    hdu 5793 A Boring Question 推公式(多校)
  • 原文地址:https://www.cnblogs.com/man-tou/p/11332626.html
Copyright © 2011-2022 走看看