最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis的詳細(xì)使用教程

 更新時(shí)間:2016年12月10日 15:09:47   投稿:mrr  
這篇文章主要介紹了Mybatis的詳細(xì)使用教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

Mybatis所需要的jar包:

需要引用兩個(gè)jar包,一個(gè)是mybatis,另一個(gè)是MySQL-connector-Java,如果是maven工程的話,pom里如下添加依賴就可以了。

<dependency>
 <groupId>org.mybatis</groupId>
 <artifactId>mybatis</artifactId>
 <version>3.2.3</version>
</dependency>
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.26</version>
</dependency>

數(shù)據(jù)準(zhǔn)備:

在MySQL中造點(diǎn)數(shù)據(jù)進(jìn)行測試用:

CREATE DATABASE mybatis_test;
CREATE TABLE user
(
 age INTEGER NOT NULL,
 name VARCHAR(64) NOT NULL DEFAULT ''
);
insert user values(18,'zhanjindong');
insert user values(20,'zhangsan');

配置文件:

需要兩類配置文件,一類是MyBatis的配置文件mybatis-config.xml,示例中是一個(gè)很簡單配置,詳細(xì)的配置網(wǎng)上有很多說明。

<?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> 
 <settings> 
  <!-- changes from the defaults for testing --> 
  <setting name="cacheEnabled" value="false" /> 
  <setting name="useGeneratedKeys" value="true" /> 
  <setting name="defaultExecutorType" value="REUSE" /> 
 </settings> 
 <typeAliases> 
  <typeAlias alias="User" type="test.mybatis.User"/> 
 </typeAliases> 
 <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.71.38:3306/mybatis_test"/> 
    <property name="username" value="root"/> 
    <property name="password" value="123456"/> 
   </dataSource> 
  </environment> 
 </environments> 
 <mappers> 
  <mapper resource="mappers/UserMapper.xml" /> 
 </mappers> 
</configuration>

另一類是數(shù)據(jù)訪問接口映射文件:示例中是UserMapper.xml。這個(gè)文件一般放在src/main/resource下面或子目錄下mybatis就可以找到了,在mybatis-config.xml中由mappers/mapper節(jié)點(diǎn)的resource指定。

<?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="test.mybatis.UserMapper">
 <!-- 這里namespace必須是UserMapper接口的路徑” -->
 <insert id="insertUser" parameterType="User">
  insert into user(name,age) values(#{name},#{age})
  <!-- 這里sql結(jié)尾不能加分號,否則報(bào)“ORA-00911”的錯(cuò)誤 -->
 </insert>
 <!-- 這里的id必須和UserMapper接口中的接口方法名相同 -->
 <select id="getUser" resultType="User" parameterType="java.lang.String">
  select * from user where name=#{name}
 </select>
</mapper>

對應(yīng)這個(gè)映射文件就是test.mybatis這個(gè)命名空間下的UserMapper這個(gè)接口,只是定義了訪問數(shù)據(jù)表的接口:

package test.mybatis;
public interface UserMapper {
 public void insertUser(User user);
 public User getUser(String name);
}

需要一個(gè)POJO:User.java

package test.mybatis;
public class User {
 private String name;
 private Integer age;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public Integer getAge() {
  return age;
 }
 public void setAge(Integer age) {
  this.age = age;
 }
 public User(String name, Integer age) {
  super();
  this.name = name;
  this.age = age;
 }
 public User() {
  super();
 }
}

測試:

通過MyBatis操作數(shù)據(jù)庫用到的是一個(gè)叫SqlSession的類,這個(gè)類是通過SqlSessionFactory產(chǎn)生的,一般建議在全局維護(hù)一個(gè)SqlSessionFactory就可以了。

TestMyBatis.java
package test.mybatis;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
 private final static SqlSessionFactory sqlSessionFactory;
 static {
  String resource = "mybatis-config.xml";
  Reader reader = null;
  try {
   reader = Resources.getResourceAsReader(resource);
  } catch (IOException e) {
   System.out.println(e.getMessage());
  }
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
 }
 public static SqlSessionFactory getSqlSessionFactory() {
  return sqlSessionFactory;
 }
}

測試代碼如下:

TestMyBatis.java
package test.mybatis;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
public class TestMyBatis {
 static SqlSessionFactory sqlSessionFactory = null;
 static {
  sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
 }
 public static void main(String[] args) {
  testAdd();
  getUser();
 }
 public static void testAdd() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
   UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
   User user = new User("lisi", new Integer(25));
   userMapper.insertUser(user);
   sqlSession.commit();// 這里一定要提交,不然數(shù)據(jù)進(jìn)不去數(shù)據(jù)庫中
  } finally {
   sqlSession.close();
  }
 }
 public static void getUser() {
  SqlSession sqlSession = sqlSessionFactory.openSession();
  try {
   UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
   User user = userMapper.getUser("zhangsan");
   System.out.println("name: " + user.getName() + "|age: "
     + user.getAge());
  } finally {
   sqlSession.close();
  }
 }
}

1、mybatis會用log4j記錄日志,但是開啟debug模式貌似對性能影響非常厲害。

2、mybatis的查詢緩存對性能的影響非常大,啟用和不啟用差距非常大

以上所述是小編給大家介紹的Mybatis的詳細(xì)使用教程,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)大家的!

相關(guān)文章

  • JVM中有哪些內(nèi)存區(qū)域及其作用

    JVM中有哪些內(nèi)存區(qū)域及其作用

    這篇文章主要介紹了JVM中有哪些內(nèi)存區(qū)域,分別是用來干什么的,vm內(nèi)又是如何劃分內(nèi)存的呢?這個(gè)內(nèi)被加載到了那一塊內(nèi)存中?,需要的朋友可以參考下
    2019-07-07
  • 圖解程序員必須掌握的Java常用8大排序算法

    圖解程序員必須掌握的Java常用8大排序算法

    本文以圖片與文字結(jié)合的方式講解了程序員必須掌握的Java常用8大排序算法:插入排序、冒泡排序、選擇排序、希爾排序 、快速排序、歸并排序、堆排序和LST基數(shù)排序,需要的朋友可以參考下
    2015-07-07
  • java web開發(fā)之購物車功能實(shí)現(xiàn)示例代碼

    java web開發(fā)之購物車功能實(shí)現(xiàn)示例代碼

    這篇文章主要介紹了java web開發(fā)之購物車功能實(shí)現(xiàn)示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口的方法

    Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口的方法

    這篇文章主要介紹了Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • Nacos入門過程的坑--獲取不到配置的值問題

    Nacos入門過程的坑--獲取不到配置的值問題

    這篇文章主要介紹了Nacos入門過程的坑--獲取不到配置的值問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Spring生命周期回調(diào)與容器擴(kuò)展詳解

    Spring生命周期回調(diào)與容器擴(kuò)展詳解

    這篇文章主要介紹了Spring生命周期回調(diào)與容器擴(kuò)展詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Springboot整合RabbitMq測試TTL的方法詳解

    Springboot整合RabbitMq測試TTL的方法詳解

    這篇文章主要介紹了Springboot整合RabbitMq測試TTL的設(shè)置,設(shè)置TTL一般由兩種設(shè)置方法,設(shè)置整個(gè)隊(duì)列的過期時(shí)間另一種設(shè)置單個(gè)消息的過期時(shí)間,通過示例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • SpringMVC框架post提交數(shù)據(jù)庫出現(xiàn)亂碼解決方案

    SpringMVC框架post提交數(shù)據(jù)庫出現(xiàn)亂碼解決方案

    這篇文章主要介紹了SpringMVC框架post提交數(shù)據(jù)庫出現(xiàn)亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java讀寫pdf文件的詳細(xì)實(shí)現(xiàn)方法

    Java讀寫pdf文件的詳細(xì)實(shí)現(xiàn)方法

    最近公司的項(xiàng)目中需要操作pdf文件,所以這里給大家總結(jié)下方法,這篇文章主要給大家介紹了關(guān)于Java讀寫pdf文件的詳細(xì)實(shí)現(xiàn)方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • java結(jié)合keytool如何實(shí)現(xiàn)非對稱加密與解密詳解

    java結(jié)合keytool如何實(shí)現(xiàn)非對稱加密與解密詳解

    這篇文章主要給大家介紹了關(guān)于java結(jié)合keytool如何實(shí)現(xiàn)非對稱加密與解密的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08

最新評論

岳普湖县| 夏津县| 辰溪县| 罗山县| 监利县| 峡江县| 莲花县| 泽州县| 壤塘县| 车险| 旅游| 特克斯县| 大姚县| 进贤县| 娱乐| 平安县| 潞西市| 桃江县| 绿春县| 耒阳市| 永康市| 松原市| 荥经县| 北安市| 木兰县| 都江堰市| 若羌县| 虞城县| 汪清县| 青神县| 和龙市| 松潘县| 阜康市| 宜兴市| 余干县| 石屏县| 昌黎县| 满洲里市| 精河县| 长海县| 开封市|