日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis入门教程(基于Mybatis3.2)

發(fā)布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis入门教程(基于Mybatis3.2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

MyBatis和Hibernate一樣都是基于ORM的關系型數(shù)據(jù)庫框架

ORM工具的基本思想:

1.從配置文件(通常是XML配置文件中)得到 sessionfactory. 2. sessionfactory?產(chǎn)生 session 3. session中完成對數(shù)據(jù)的增刪改查和事務提交等. 4. 在用完之后關閉session

5.java對象和數(shù)據(jù)庫之間有做mapping的配置文件,也通常是xml文件。

?

?

MyBatis 是支持 普通 SQL 查詢 , 存儲過程 和 高級映射 的優(yōu)秀持久框架。MyBatis 消除了幾乎所有的 JDBC 代碼和參數(shù)的手工設置以及對結(jié)果集的檢索封裝。

?

本文就一個demo的形式,講訴MyBatis的數(shù)據(jù)庫操作過程,新建一個web項目,項目結(jié)構(gòu)如圖:

我們需要準備mybatis3.2.jar和mysql的jar,日志輸出的jar根據(jù)自己項目的需要

?

?

新建數(shù)據(jù)庫,數(shù)據(jù)表是users,設置id為主鍵,同時自動增長

?

?

新建一個資源文件config

編寫數(shù)據(jù)庫配置信息文件db.properties:

driver=com.mysql.jdbc.Driver url=jdbc\:mysql\://localhost\:3306/db_mysql?useUnicode\=true&characterEncoding\=utf-8 username=root password=111

?

?

?

編寫pojo類:

package com.mybatis.entity;public class User {/** ID*/private int id;/** 用戶姓名 */private String name;/** age*/private int age;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + ", age=" + age + "]";}}

?

?

?

編寫pojo類對應的mapper文件:

<?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.mybatis.mapper.userMapper"><!-- 在select標簽中編寫查詢的SQL語句, 設置select標簽的id屬性為findById,id屬性值必須是唯一的,不能夠重復parameterType可以在MyBatis的配置文件里設置,也可以直接用包名+類名--><insert id="save" parameterType="User">insert into users(id,name,age) value(#{name},#{age})</insert><update id="update" parameterType="User">update users set name=#{name},age=#{age} where id=#{id}</update><delete id="delete" parameterType="int">delete from users where id=#{id}</delete><select id="findById" parameterType="int" resultType="User">select * from users where id=#{id}</select><select id="findAll" resultType="User">select * from users</select> </mapper>

?

?

然后,在編寫MyBatis的配置文件:

<?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><!-- 數(shù)據(jù)庫配置文件 --> <properties resource="db.properties" /> <!-- 實體類,簡稱 -設置別名 --><typeAliases><typeAlias alias="User" type="com.mybatis.entity.User" /></typeAliases><!-- 讀取db.properties里的數(shù)據(jù),進行數(shù)據(jù)庫配置 --><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><!-- 注冊userMapper.xml文件 --><mappers><mapper resource="com/mybatis/mapper/userMapper.xml"/></mappers></configuration>

?

?

測試類:

import java.io.Reader;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 com.mybatis.entity.User;public class Test {public static void main(String[] args) {String resource = "mybatis-config.xml";try{//加載Mybatis的配置文件Reader reader = Resources.getResourceAsReader(resource);//構(gòu)建sqlSession的工廠SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);//創(chuàng)建可以執(zhí)行sql的SqlSessionSqlSession session = sessionFactory.openSession();//映射sql的標志字符串String statement = "com.mybatis.mapper.userMapper.findById";//執(zhí)行查詢返回id為1的User對象User user = session.selectOne(statement,1);System.out.println(user);}catch (Exception e) {e.printStackTrace();}} }

然后,可以編寫日志文件,進行日志輸出

log4j.properties\uFF0C log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG

運行測試類,可以輸出,說明我們的mybatis搭建好了,可以進行數(shù)據(jù)庫操作

?

?

需要注意的:

為了統(tǒng)一編碼,建議新建數(shù)據(jù)庫時設置成utf-8的

還有測試時,那個id一定要和userMapper.xml里的id對應,mybatis是根據(jù)這個id調(diào)用sql函數(shù)的哦

配置mybatis文件時,一定要注意順序,一般都是先配置別、數(shù)據(jù)庫配置、然后mapper文件注冊的

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/mzq123/p/5450632.html

總結(jié)

以上是生活随笔為你收集整理的MyBatis入门教程(基于Mybatis3.2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。