須要兩個jar包,mysql-connector-java-5.1.21.jar和mybatis-3.4.2.jar 對應的maven爲java
<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version> </dependency> </dependencies>
use test; create table t_employeer( employeer_id int not null primary key AUTO_INCREMENT , employeer_name varchar(50) default null, employeer_age int default null, employeer_department varchar(100) default null, employeer_worktype varchar(100) default null )
public class Employeer { private Integer employeer_id; private String employeer_name; private Integer employeer_age ; private String employeer_department; private String employeer_worktype; ...
<?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> <!-- 元素容許在主配置文件以外提供一個properties格式對應文件,從而使得主配置文件更加通用。這樣對部署很是有用 --> <!-- <properties resource="mysql.properties" /> --> <!-- 設置別名,必定要放在properties下面 --> <typeAliases> <typeAlias alias="Employeer" type="com.mucfc.model.Employeer" /> </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://localhost:3306/test?characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="1994713"/> <!--<property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> --> </dataSource> </environment> </environments> <!-- 列出映射文件 --> <mappers> <mapper resource="com/mucfc/model/Employeer.xml" /> </mappers> </configuration>
若是想從配置文件讀取mysql的數據源,能夠添加對應的properties文件,上文的註釋爲properties方式的配置 mysql.propertiesmysql
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?charset=utf8 username=hsm password=1994713
這個地方的命名空間很重要,必定是具體的接口sql
<?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.hsm.inter.EmployeerMapper"> <!-- 查找 --> <select id="findEmployeerByID" parameterType="int" resultType="Employeer"> select* from `t_employeer` where employeer_id =#{employeer_id} </select> <!-- 插入 --> <!-- useGeneratedKeys設置爲"true"代表要MyBatis獲取由數據庫自動生成的主鍵;keyProperty="id"指定把獲取到的主鍵值注入到Employeer的id屬性 --> <insert id="addEmployeer" parameterType="Employeer" useGeneratedKeys="true" keyProperty="employeer_id"> insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype}) </insert> <!-- 刪除 --> <delete id="deleteEmployeer" parameterType="int"> delete from `t_employeer` where employeer_id = #{employeer_id} </delete> <!-- 修改 --> <update id="updateEmployeer" parameterType="Employeer"> update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department} ,employeer_worktype=#{employeer_worktype} where employeer_id = #{employeer_id} </update> </mapper>
package com.hsm.inter; import com.mucfc.model.Employeer; public interface EmployeerMapper { /** * 注意要和Employeer.xml的方法名對應 */ public Employeer findEmployeerByID(int id); public void addEmployeer(Employeer employeer); public void deleteEmployeer(int id); public void updateEmployeer(Employeer employeer); }
package com.hsm; 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.hsm.inter.EmployeerMapper; import com.mucfc.model.Employeer; public class MybatisTest2 { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } } /** * 查找 */ public static void findEmployeerById(int id) { SqlSession session = null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); Employeer employeer=employeerMapper.findEmployeerByID(id); if (employeer == null) System.out.println("null"); else System.out.println(employeer); } finally { session.close(); } } /** * 增長 */ public static void addEmployeer(Employeer employeer){ SqlSession session = null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeerMapper.addEmployeer(employeer); session.commit() ; } finally { session.close(); } } /** * 刪除 * */ public static void deleteEmployeer(int id){ SqlSession session = null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeerMapper.deleteEmployeer(id); session.commit() ; } finally { session.close(); } } /** * 更改 */ public static void updateEmployeer(Employeer employeer){ SqlSession session = null; try { session = sqlSessionFactory.openSession(); EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class); employeerMapper.updateEmployeer(employeer); session.commit() ; } finally { session.close(); } } public static void main(String[] args) { Employeer employeer1=new Employeer(); employeer1.setEmployeer_name("李四"); employeer1.setEmployeer_age(23); employeer1.setEmployeer_department("產品一部"); employeer1.setEmployeer_worktype("開發工程師"); Employeer employeer2=new Employeer(); employeer2.setEmployeer_name("張三"); employeer2.setEmployeer_age(30); employeer2.setEmployeer_department("產品二部"); employeer2.setEmployeer_worktype("測試工程師"); Employeer employeer3=new Employeer(); employeer3.setEmployeer_name("小王"); employeer3.setEmployeer_age(22); employeer3.setEmployeer_department("產品三部"); employeer3.setEmployeer_worktype("數據分析師"); Employeer employeer4=new Employeer(); employeer4.setEmployeer_name("明明"); employeer4.setEmployeer_age(22); employeer4.setEmployeer_department("財會部"); employeer4.setEmployeer_worktype("財務人員"); //插入 addEmployeer(employeer1); addEmployeer(employeer2); addEmployeer(employeer3); addEmployeer(employeer4); findEmployeerById(26); deleteEmployeer(27); //更改 employeer2.setEmployeer_id(28); employeer2.setEmployeer_age(21); employeer2.setEmployeer_department("產品四部"); updateEmployeer(employeer2); } }