zoukankan      html  css  js  c++  java
  • 如何用mybatis链接数据库

    用mybatis链接数据库十分的方便,这里总结一下具体的步骤。

    1.首先创建一个maven项目

    在pom.xml导入依赖

     1 <dependencies>
     2         <dependency>
     3             <groupId>org.mybatis</groupId>
     4             <artifactId>mybatis</artifactId>
     5             <version>3.4.4</version>
     6         </dependency>
     7         <dependency>
     8             <groupId>mysql</groupId>
     9             <artifactId>mysql-connector-java</artifactId>
    10             <version>5.1.47</version>
    11         </dependency>
    12         <dependency>
    13             <groupId>c3p0</groupId>
    14             <artifactId>c3p0</artifactId>
    15             <version>0.9.1.2</version>
    16         </dependency>
    17 
    18     </dependencies>

    2.在resources目录创建mybatis配置文件名字叫做mybatis-config.xml 。

    在mybatis-config.xml中根据自己的需要设置一些setting,配置相应的环境,还有映射文件。

     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 <!-- 引入外部资源文件 -->
     7 <properties resource="jdbc.properties"></properties>
     8 <!-- 设置驼峰匹配 -->
     9 <settings>
    10     <setting name="mapUnderscoreToCamelCase" value="true"/>
    11     <!-- 打印查询语句 -->
    12     <setting name="logImpl" value="STDOUT_LOGGING" />
    13 </settings>
    14 <!-- 配置环境:可以配置多个环境,default:配置某一个环境的唯一标识,表示默认使用哪个环境 -->
    15 <environments default="development">
    16     <environment id="development">
    17         <transactionManager type="JDBC"/>
    18         <dataSource type="POOLED">
    19             <!-- 配置连接信息 -->
    20             <property name="driver" value="${jdbc.driver}"/>
    21             <property name="url" value="${jdbc.url}"/>
    22             <property name="username" value="${jdbc.username}"/>
    23             <property name="password" value="${jdbc.password}"/>
    24         </dataSource>
    25     </environment>
    26 </environments>
    27 <!-- 配置映射文件:用来配置sql语句和结果集类型等 -->
    28 <mappers>
    29     <mapper resource="org/seckill/mapper/dataDao.xml"/>
    30 </mappers>
    31 </configuration>

    注意:这个地方的xml文件就是一会要写sql语句的xml,这个路径根据自己的配置进行调整。

    3.在resources下配置一个properties

    这个用来写你数据库连接的host、user、password

    4.在java下创建一个包,里面写dao层的接口。【我这个包起名的时候很蠢,大家一定按照规则写包名!!

    dataDao接口就是用来接收数据库中的数据的格式问题。

    举个例子:我自己的数据库里是一个含有年级的学生信息(里面有id name 年级 分数等等)

    我要取出所有年级为高中的学生信息。

    1 package org.seckill.mapper;
    2 
    3 import org.seckill.entity.Data;
    4 
    5 import java.util.List;
    6 
    7 public interface dataDao {
    8     List<Data> selectAll(String grade);
    9 }

    通过传参数grade:小学/初中/高中  ,最后从数据库导出的时候,就会被封装为Data类型的一个列表。

    那么:::Data数据类型是什么?

    我在entity包中创建了一个Data类,就是把所有的一条sql语句中的id、name、年级、分数等封装在一起。。(这个大家都懂)

    Data类里面有:

    1     private Long id;
    2     private int mark;
    3     private String names;

    等等,包括他们的get、set方法。

    5. 在同样的mapper包下面,闯将一个dataDao的xml与接口对应。dataDao.xml里面是用来写sql的。

    <?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="org.seckill.mapper.dataDao">
        <!--查询所有-->
        <select id="selectAll" parameterType="String" resultType="org.seckill.entity.Data">
            select  * from A where grade=#{grade};
        </select>
    </mapper>

    namespace是对应的接口名字。#{grade}就是第4步在dataDao中传入的年级。

    6.由于只用了mybatis,所以我们需要自己创建会话工厂

    在主函数中,或者单独写一个函数封装连接功能。

     1 String resource = "mybatis-config.xml";
     2         InputStream inputStream = null;
     3         SqlSession session = null;
     4         List<Data> all = null;
     5         try {
     6             inputStream = Resources.getResourceAsStream(resource);
     7             //使用流对象创建一个会话工厂
     8             SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
     9             //session就是程序员与数据库交互的入口
    10             session = sf.openSession();
    11             dataDao mapper = session.getMapper(dataDao.class);
    12             all = mapper.selectAll("高中");
    13         } catch (IOException e) {
    14             e.printStackTrace();
    15         } finally {
    16             session.commit();
    17             //关闭会话,释放资源
    18             session.close();
    19         }

     最后所有拿到的数据就被放在

    List<Data> all

    这个list中了,就可以进一步进行处理。

    这样mybatis就链接mysql就完事了



  • 相关阅读:
    Objective-C Memory Management Being Exceptional 异常处理与内存
    Objective-C Memory Management 内存管理 2
    c语言全局变量与局部变量(当变量重名时)的使用情况
    c语言指针字符串与字符数组字符串的区别
    c语言数组不同初始化方式的结果
    补码的用途
    struts2框架加载配置文件的顺序
    CSS盒子模型
    基于注解整合struts2与spring的时候如果不引入struts2-spring-plugin包自动装配无效
    @Resource注解省略name属性后的行为
  • 原文地址:https://www.cnblogs.com/levontor/p/11151341.html
Copyright © 2011-2022 走看看