1.準備工做java
軟件:eclipse、 mysql 、navicat for mysqlmysql
包:mybatis-3.1.1.jar mysql-connector-java-5.1.7-bin.jarweb
2.建立項目sql
web項目在eclipse中是指動態web項目,即Dynamic web project.數據庫
源碼放在src文件夾。apache
jar包放在自建的lib文件夾下而後build path到當前項目中。服務器
3.建立數據庫和表網絡
打開 MYSQL command line client,輸入數據庫密碼回車,成功後建立數據庫數據表。注意每句結尾都要有「;」,而後回車,你會知道這條語句正確仍是錯誤。session
在此引入大神語句:mybatis
create database mybatis; use mybatis; CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT); INSERT INTO users(NAME, age) VALUES('孤傲蒼狼', 27); INSERT INTO users(NAME, age) VALUES('白虎神皇', 27);
建立的數據庫叫mybatis ,數據表叫users,users表中有兩條數據。
下一步就是利用Navicat for mysql對數據庫進行管理。
鏈接名任意寫,因爲創建的爲本地數據庫,因此主機名爲 localhost(意思爲本地服務器),端口爲mysql默認端口3306(改不改均可以),用戶名和密碼爲mysql的用戶名密碼,也就是你打開mysql時要輸入的用戶名密碼。
此時,能夠用 nacivat for mysql 管理建好的數據庫數據表了。
在此作一下概念區分(知識來源於流浪的蝦殼博客的《鏈接數據庫localhost和127.0.0.1的區別》):
一.localhost 和 127.0.0.1
localhost也叫local ,正確解釋爲:本地服務器
127.0.0.1在系統的正確解釋是:本機地址(本機服務器)
localhot(local)是不經網卡傳輸!這點很重要,它不受網絡防火牆和網卡相關的的限制。訪問localhost也不會解析成ip,不會佔用網卡、網絡資源。
127.0.0.1是須要經過網卡傳輸,依賴網卡,並受到網絡防火牆和網卡相關的限制。
這就是爲何有時候用localhost能夠訪問,但用127.0.0.1就不能夠的狀況。因此仍是儘可能用localhost吧.
二. 數據庫默認端口號
SQL Server 1433
Oracle 1521
MySQL 3306
4.創建MyBatis 查詢
須要創建 一、Mybatis的配置文件conf.xml
二、users表所對應的實體類
三、定義操做users表的sql映射文件userMapper.xml
四、在conf.xml文件中註冊userMapper.xml文件
五、編寫測試代碼:執行定義的select語句
4.1 conf.xml
按照大神代碼敲的,已經註冊了userMapper.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"> <!--JDBC爲java提供的管理數據庫接口--> <transactionManager type="JDBC"/> <!-- 配置數據庫鏈接信息 --> <!--POOLED:使用Mybatis自帶的數據庫鏈接池來管理數據庫鏈接 --> <dataSource type="POOLED"> <!--driver爲數據庫驅動,固定的 --> <property name="driver" value="com.mysql.jdbc.Driver" /> <!-- 「jdbc:mysql://IP:端口號/數據庫(你建的那個) --> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="liyangkun123" /> </dataSource> </environment> </environments> <mappers> <!-- 註冊userMapper.xml文件,userMapper.xml位於me.gacl.mapping這個包下,因此resource寫成me/gacl/mapping/userMapper.xml--> <mapper resource = "me/gacl/mapping/userMapper.xml" ></mapper> </mappers> </configuration>
POOLED:使用Mybatis自帶的數據庫鏈接池來管理數據庫鏈接
UNPOOLED:不使用任何數據庫鏈接池來管理數據庫鏈接
JNDI:jndi形式使用數據庫鏈接、主要用於項目正常使用的時候
4.2 建立users表實體類
很簡單,不贅述。
4.3 測試代碼
此部分大神註釋很明白,參見大神代碼便可,引用以下。
package me.gacl.test; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import me.gacl.domain.User; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class Test1 { public static void main(String[] args) throws IOException { //mybatis的配置文件 String resource = "conf.xml"; //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件) InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);(class裏有getResourceAsStream方法) //構建sqlSession的工廠 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);//建立能執行映射文件中sql的sqlSession SqlSession session = sessionFactory.openSession(); /** * 映射sql的標識字符串, * me.gacl.mapping.userMapper是userMapper.xml文件中mapper標籤的namespace屬性的值, * getUser是select標籤的id屬性值,經過select標籤的id屬性值就能夠找到要執行的SQL */ String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的標識字符串 //執行查詢返回一個惟一user對象的sql User user = session.selectOne(statement, 1); System.out.println(user); } }
最後在Test1上右擊,選擇 run as ---> java application 運行
結果以下:
後續還將跟着大神學習下去。