Mybatis 学习一

来源:互联网 发布:xftp连接linux失败 编辑:程序博客网 时间:2024/06/05 20:16

Mybatis 学习一

简介

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

用法

1.基于xml文件配置:

如果项目是依赖于maven,需要在pom.xml文件中增加mybatis依赖

<dependency>  <groupId>org.mybatis</groupId>  <artifactId>mybatis</artifactId>  <version>3.3.0</version></dependency>

在maven目录结果main目录下增加java文件夹,并设置为主资源文件夹,如在Intellij中打开project Structure

在Modules模块中

如果不添加,则会创建无法创建java文件

在maven resources目录下是所有配置文件存放的目录,编译后它的路径就是classpath路径下也就是src路径下,在resource中配置数据库文件dbconf.xml(名字任意取),在dbconf.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>        <environments default="development">        <environment id="development">            <transactionManager type="JDBC" />            <!-- 配置数据库连接信息 -->            <dataSource type="POOLED">                <property name="driver" value="com.mysql.jdbc.Driver" />                <property name="url" value="jdbc:mysql://192.168.88.6:3306/asterisk" />                <property name="username" value="root" />                <property name="password" value="root" />            </dataSource>        </environment>        </environments>        <mappers>            <mapper resource="user.xml"></mapper>            <mapper class="com.kalamodo.mybatis.DbInter.UserInter"></mapper>        </mappers>    </configuration>

在上述创建的java文件夹下新建java包:

com.mybatis.test在此包下新建bean包:beans在beans目录下新建UserBean.javapackage com.kalamodo.mybatis.beans;/** * Created by 95 on 2017/5/12. */public class UserBean {private int id;private String header;private String nickname;private int sex;private int role;private String callid;private String secret;private String sip;private int belongid;public int getId() {    return id;}public void setId(int id) {    this.id = id;}public String getHeader() {    return header;}public void setHeader(String header) {    this.header = header;}public String getNickname() {    return nickname;}public void setNickname(String nickname) {    this.nickname = nickname;}public int getSex() {    return sex;}public void setSex(int sex) {    this.sex = sex;}public int getRole() {    return role;}public void setRole(int role) {    this.role = role;}public String getCallid() {    return callid;}public void setCallid(String callid) {    this.callid = callid;}public String getSecret() {    return secret;}public void setSecret(String secret) {    this.secret = secret;}public String getSip() {    return sip;}public void setSip(String sip) {    this.sip = sip;}public int getBelongid() {    return belongid;}public void setBelongid(int belongid) {    this.belongid = belongid;    }}

在resource文件夹下添加执行sql语句的xml文件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="k_websmanager">    <select id="all" resultType="com.kalamodo.mybatis.beans.UserBean">        select * from k_websmanager    </select></mapper>namespace 很重要的命名空间,用于在java代码中标识要执行的是哪一个mapper,resultType 标识返回类型,查询后,会自动封装成返回的类型

接下来就是在dbconf.xml中创建执行sql的映射

在dbconf.xml中添加注册执行sql语句 <mappers>    <mapper resource="user.xml"></mapper></mappers>

测试:

public class DbTest {public static void main(String args[]){    try {        String resource= "dbconfig.xml";        InputStream in=Resources.getResourceAsStream(resource);        SqlSessionFactory sqlFc=new SqlSessionFactoryBuilder().build(in);        SqlSession sqlse=sqlFc.openSession();        List<UserBean> UserBeans=sqlse.selectList("k_websmanager.all");        for (UserBean user : UserBeans){            System.out.print(user.getNickname());        }    } catch (Exception e) {        e.printStackTrace();    }    }}

2.基于代码注解

创建接口UserInter

/*** Created by 95 on 2017/5/15.*/public interface UserInter {    @Select("select * from k_websmanager")    public List<UserBean> selectuser();}

在dbconf.xml中添加mapper
注册执行sql语句

测试:

  public static void main(String args[]){    try {        String resource= "dbconfig.xml";        InputStream in=Resources.getResourceAsStream(resource);        SqlSessionFactory sqlFc=new SqlSessionFactoryBuilder().build(in);        SqlSession sqlse=sqlFc.openSession();        UserInter usermapper=sqlse.getMapper(UserInter.class);        List<UserBean> UserBeans=usermapper.selectuser();        for (UserBean user : UserBeans){            System.out.print(user.getNickname());        }    } catch (Exception e) {        e.printStackTrace();    }}}

优化:
1.将dbconf.xml中数据库配置属性的接口提取出来,创建db.properties

    driver=com.mysql.jdbc.Driver    url=jdbc:mysql://192.168.88.6:3306/asterisk    username=root    password=root

在dbconf.xml中包含该配置属性:

更改配置:

    <environments default="development"><environment id="development">    <transactionManager type="JDBC" />    <!-- 配置数据库连接信息 -->    <dataSource type="POOLED">        <property name="driver" value="${driver}" />        <property name="url" value="${url}" />        <property name="username" value="${username}" />        <property name="password" value="${password}" />    </dataSource></environment></environments>
0 0