• Mybatis_1(认识)一个简单的HelloWorld


    1. 介绍:

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
    MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索。
    MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的
    POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
    

    过程:jdbc–>dbutil–>(mybatis)–>hibernate
    所需部分:

        1.jar包
            asm-3.3.1.jar、
            cglib-2.2.2.jar、
            commons-logging-1.1.1.jar、
            log4j-1.2.16.jar、  
            mybatis-3.1.1.jar、
            mysql-connector-java-5.1.7-bin.jar、
            slf4j-api-1.6.2.jar
            slf4j-log4j12-1.6.2.jar
         2. 实体类
         3. 接口
         4.映射文件
         5.配置文件
         6.提供sqlsession的工具类
    

    2.一个简单的HelloWorld

    2.1.实体类:User:

        public class User {
             private int id;
             private String name;
             private int age;
             //getter、setter...
        }
    

    2.2.映射文件:userMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 -->
    <mapper namespace="com.test.helloworld.userMapper">
         <select id="selectAll" resultType="com.test.bean.User">
               select * from users
         </select>
    </mapper>
    

    2.3.配置文件mybatis.cfg.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>
         <!-- 映入外部配置文件 -->
         <properties resource="mysql.properties"></properties>
         <!-- 配置mybatis运行环境,development:开发模式,work:工作模式-->
         <environments default="development">
               <environment id="development">
                    <!-- type=“jdbc”表示使用JDBC的提交和回滚来管理事务 -->
                    <transactionManager type="JDBC" />
                    <!-- mybatis提供了三种数据源类型,POOLED,UNPOOLED,JNDI -->
                    <!-- POOLED:表示支持JDBC数据源的连接池 -->
                    <!-- UNPOOLED:表示不支持JDBC数据源的连接池 -->
                    <!-- JNDI:表示支持外部数据源连接池 -->
                    <dataSource type="POOLED">
                         <property name="driver" value="${jdbc.driver}" />
                         <property name="url" value="${jdbc.url}" />
                         <property name="username" value="${jdbc.username}" />
                         <property name="password" value="${jdbc.password}" />
                    </dataSource>
               </environment>
         </environments>
         <mappers>
               <!-- 一个简单的HelloWorld查询SQL映射 -->
               <mapper resource="com/test/helloworld/userMapper.xml"/>
         </mappers>
         <!-- 为实体类定义别名,简化sql映射xml文件中的引用 -->
         <!-- <typeAliases>
               <typeAlias type="com.test.bean.User" alias="_User"/>
         </typeAliases> -->
    </configuration>
    

    2.4.数据库配置文件mysql.properties

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatis1?useUincode=true&characterEncoding=UTF-8
    jdbc.username=root
    jdbc.password=root
    

    2.5.测试类Test.java

    public class Test {
         /**
          * 查询所有User表中数据
          * @param args
          * @throws IOException
          */
         public static void main(String[] args) throws IOException {
               String resource = "mybatis.cfg.xml";
               //加载配置文件
               Reader reader = Resources.getResourceAsReader(resource);
               //构建SQLsession工厂
               SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
               //获取执行映射文件中SQL语句的session
               SqlSession sqlSession = factory.openSession();
               //映射SQL的标识字符串
               String statement = "com.test.helloworld.userMapper.selectAll";
               //执行查询返回一个唯一user对象的sql
               List<User> user = sqlSession.selectList(statement);
               System.out.println(user);
         }
    }
    

    查询结果:

    [User [id=4, name=张三, age=21], User [id=5, name=张三三, age=21], User [id=6, name=张三, age=21], User [id=7, name=张三, age=21], User [id=9, name=张三三, age=21], User [id=10, name=3, age=3], User [id=11, name=张三, age=21]]
    
  • 相关阅读:
    no,no,不要使用kill -9
    Linux中etc目录详解
    Quartz任务调度器的使用
    RMI(Remote Method invocation,远程方法访问)
    SilverLight扩展控件RadTreeView
    SiverLight和HTML交互
    SilverLight控件之ContextMenu和RadContextMenu(菜单)
    SilverLight之向后台请求数据-WebClient
    SilverLight控件样式及控件模版
    在SilverLight中代码编写可选择树节点
  • 原文地址:https://www.cnblogs.com/tengpengfei/p/10453932.html
Copyright © 2020-2023  润新知