1. 程式人生 > >Mybatis開發的配置

Mybatis開發的配置

-m todo src turn default prop trace error mit

技術分享

數據庫訪問層:將數據庫或者其它存儲的數據轉換為內存的對象數據。

業務邏輯層:將內存的數據加工處理

UI層(界面層):負責數據的展示。-----MVC來處理。

數據持久化的概念:將存儲在其它地方的數據轉換為內存中的數據的這一過程稱之為數據持久化的過程。

比如oracle開發,userinfo

技術分享

Model:數據模型 Rrelation:關聯 Object:對象

關鍵點:每條數據對應是一個實例化的有數據的對象。

2.回顧JDBC的操作:

技術分享

3.ORM的框架:

1)將數據庫表與對象進行映射

2)負責將執行獲取的數據庫的表的數據轉換成內存的對象數據(數據持久化的過程)

4.Mybatis的使用。

目的:mybatis讓程序將主要精力放在sql上,通過mybatis提供的映射方式,自由靈活生成(半自動化,大部分需要程序員編寫sql)滿足需要sql語句。

開發mybatis的步驟:

1)加載mybatisjar包和數據庫連接驅動的jar包,連接池

2)開發配置的文件mybatis-config.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"/> <!-- 配置JDBC的屬性 --> <dataSource type="POOLED"> <!--表示的是數據庫的連接驅動 --> <property name="driver" value
="oracle.jdbc.driver.OracleDriver"/> <!-- 表示的是連接字符串 --> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="hotelsup"/> <property name="password" value="123"/> </dataSource> </environment> </environments> <mappers> </mappers> </configuration>

3)開發實體類:

比如開發針對userinfo表的實體類:

package com.jinglin.hotelsup.model;

import java.io.Serializable;

public class UserInfo implements Serializable {
    public Integer getUserid() {
        return userid;
    }

    public void setUserid(Integer userid) {
        this.userid = userid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd;
    }

    public String getCard() {
        return card;
    }

    public void setCard(String card) {
        this.card = card;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public String getDel() {
        return del;
    }

    public void setDel(String del) {
        this.del = del;
    }

    private Integer userid;
    private String username;
    private String userpwd;
    private String card;
    private String job;
    private String del;
}

4SQL語句的編寫。(SQL配置文件) 。命名規則實體類名字+Mapper.xml

比如:UserInfoMapper.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="com.jinglin.hotelsup.model">
    <insert id="insertItem" parameterType="com.jinglin.hotelsup.model.UserInfo">
       insert into userinfo(userid,username,userpwd,card,job)
       values(userseq.nextval,#{username},#{userpwd},#{card},#{job})
    </insert>
</mapper>

5)將剛才配置的加入到mybatis-config.xml中:

<mappers>
     <mapper resource="com/jinglin/hotelsup/model/UserInfoMapper.xml"/>
  </mappers>

6)實現mybatis操作數據庫:

技術分享

示例代碼:

package com.jinglin.hotelsup.dao.imp;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;
import org.junit.Test;

import com.jinglin.hotelsup.dao.IDaoHotel;
import com.jinglin.hotelsup.model.UserInfo;

public class UserInfoDao implements IDaoHotel<UserInfo> {
    
    static Logger logger = Logger.getLogger(UserInfoDao.class);
    static SqlSessionFactory sessionFactory =null;
    static{
        //產生這一個工廠創建類,需要通過讀取配置文件的信息
        InputStream inputStream=null;
        try {
            inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            logger.error("創建連接對象出錯,錯誤信息:"+e.getMessage());
        }
        sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
    @Override
    public int insertItem(UserInfo t) {
        //表示Mybatis每次與數據庫交互的對象
        SqlSession session = sessionFactory.openSession();
        int i=session.insert("UserInfoMapper.insertItem", t);
        session.commit();//進行事務提交
        session.close();
        return i;
    }
    @Test
    public void testit(){
        UserInfo userinfo = new UserInfo();
        userinfo.setCard("222");
        userinfo.setJob("程序員");
        userinfo.setUsername("zhangsan11");
        userinfo.setUserpwd("678");
        System.out.println(insertItem(userinfo));
    }
    
}

Mybatis開發的配置