標籤:
最近公司項目要使用myBatis,自己以前沒有接觸過,就在網上找到了一些資料研究了些。初步做出了基於myBatis串連mysql資料庫的jdbc實現的功能。
employee.java
package com.org.position.model;public class employee {private int employeeId;// 員工idprivate String employeeName; //員工姓名private String employeeSax; //員工性別private String employeePost; //員工職務private String employeeDepartment; //員工所在部門public int getEmployeeId() {return employeeId;}public void setEmployeeId(int employeeId) {this.employeeId = employeeId;}public String getEmployeeName() {return employeeName;}public void setEmployeeName(String employeeName) {this.employeeName = employeeName;}public String getEmployeeSax() {return employeeSax;}public void setEmployeeSax(String employeeSax) {this.employeeSax = employeeSax;}public String getEmployeePost() {return employeePost;}public void setEmployeePost(String employeePost) {this.employeePost = employeePost;}public String getEmployeeDepartment() {return employeeDepartment;}public void setEmployeeDepartment(String employeeDepartment) {this.employeeDepartment = employeeDepartment;}}
employeeDao.java
package com.org.position.dao;import java.util.List;import com.org.position.model.employee;public interface employeeDao { public int countAll(); public employee findEnterprise(int employeeId); public int insertEnterprise(employee emp); public int deleteEnterprise(int employeeId); public List<employee> getAllEnterprise(); public int updateEnterprise(employee emp ); public List<employee> findEnterpriseByExampleIf(employee emp); }
employeeDaoimpal.java
package com.org.position.dao.impal;import java.io.IOException;import java.io.Reader;import java.util.List;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.org.position.dao.employeeDao;import com.org.position.model.employee;public class employeeDaoimpal implements employeeDao {@Overridepublic int countAll() {String resource="mybaits-config.xml";Reader reader=null;SqlSessionFactory ssf=null;SqlSession session=null;int iCount=0;try {reader= Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();ssf=builder.build(reader);session=ssf.openSession();iCount=session.selectOne("com.org.position.dao.employeeDao.countAll");} catch (IOException e) {e.printStackTrace();}finally{session.close();}return iCount;}@Overridepublic employee findEnterprise(int employeeId) {String resource="mybaits-config.xml";Reader reader=null;SqlSessionFactory ssf=null;SqlSession session=null;employee emp=null;try {reader = Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();ssf = builder.build(reader);session=ssf.openSession();employeeDao empdao=session.getMapper(employeeDao.class);emp=empdao.findEnterprise(employeeId);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{session.close();}return emp;}@Overridepublic int insertEnterprise(employee emp) {String resource="mybaits-config.xml";Reader reader=null;SqlSessionFactory ssf=null;SqlSession session=null;int count=0;try {reader = Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();ssf = builder.build(reader);session=ssf.openSession();count=session.insert("com.org.position.dao.employeeDao.insertEnterprise",emp);session.commit();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{session.close();}return count;}@Overridepublic int deleteEnterprise(int employeeId) {String resource="mybaits-config.xml";Reader reader = null;SqlSessionFactory ssf=null;SqlSession session=null;int iCount = 0;try {reader = Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();ssf = builder.build(reader);session=ssf.openSession();iCount=session.delete("com.org.position.dao.employeeDao.deleteEnterprise", employeeId);session.commit();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{session.close();}return iCount;}@Overridepublic List<employee> getAllEnterprise() {String resource="mybaits-config.xml";Reader reader = null;SqlSessionFactory ssf=null;SqlSession session=null;List<employee> emps = null;try {reader = Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();ssf = builder.build(reader);session=ssf.openSession();emps=session.selectList("com.org.position.dao.employeeDao.getAllEnterprise");} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{session.close();}return emps;}@Overridepublic int updateEnterprise(employee emp) {String resource="mybaits-config.xml";Reader reader = null;SqlSessionFactory ssf=null;SqlSession session=null;int iCount = 0;try {reader = Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();ssf = builder.build(reader);session=ssf.openSession();iCount=session.delete("com.org.position.dao.employeeDao.updateEnterprise",emp);session.commit();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{session.close();}return iCount;}@Overridepublic List<employee> findEnterpriseByExampleIf(employee emp) {String resource="mybatis-config.xml";Reader reader = null;SqlSessionFactory ssf=null;SqlSession session=null;List<employee> emps = null;try {reader = Resources.getResourceAsReader(resource);SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();ssf = builder.build(reader);session=ssf.openSession();emps=session.selectList("com.org.position.dao.employeeDao.findEnterpriseByExampleIf",emp);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{session.close();}return emps;}}
employeeDaoMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> <mapper namespace="com.org.position.dao.employeeDao"> <resultMap type="com.org.position.model.employee" id="empResultMap"> <id property="employeeId" column="employeeId"/> <result property="employeeName" column="employeeName" /> <result property="employeeSax" column="employeeSax"/> <result property="employeePost" column="employeePost"/> <result property="employeeDepartment" column="employeeDepartment"/> </resultMap> <select id="findEnterpriseByExampleIf" parameterType="com.org.position.model.employee" resultMap="empResultMap"> select * from employee where 1=1 <if test="employeed !=null"> and employeeId=#{employeeId} </if> <if test="employeename!=null"> and employeeName=#{employeeName} </if> <if test="employeesax! =null"> and employeeSax=#{employeeSax} </if> <if test="employeepost!=null"> and employeePost=#{employeePost} </if> <if test="employeedepartment! =null"> and employeeDepartment=#{employeeDepartment} </if> </select> <select id="countAll" resultType="int"> select count(*) from t_employee </select> <!-- 根據id查詢對應的資料資訊 --> <select id="findEnterprise" parameterType="int" resultType="com.org.position.model.employee"> select * from t_employee where employeeId=#{employeeId} </select> <!-- 查詢所有 資料 --> <select id="getAllEnterprise" resultType="com.org.position.model.employee"> select * from t_employee </select> <!-- 添加資料資訊 --> <insert id="insertEnterprise" parameterType="com.org.position.model.employee"> insert into t_employee(employeeId,employeeName,employeeSax,employeePost,employeeDepartment) values (#{employeeId},#{employeeName},#{employeeSax},#{employeePost},#{employeeDepartment}) </insert> <!-- 更新資料資訊 --> <update id="updateEnterprise" parameterType="com.org.position.model.employee"> update t_employee set employeeName=#{employeeName},employeeSax=#{employeeSax},employeePost=#{employeePost},employeeDepartment=#{employeeDepartment} where employeeId=#{employeeId} </update> <!-- 刪除資料資訊 --> <delete id="deleteEnterprise" parameterType="com.org.position.model.employee"> delete from t_employee where employeeId=#{employeeId} </delete></mapper>
mybaits-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"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="mysql"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/org/position/dao/employeeDaoMapper.xml"/> </mappers></configuration>
employeeTest.java
package com.org.position.test;import java.util.List;import com.org.position.dao.employeeDao;import com.org.position.dao.impal.employeeDaoimpal;import com.org.position.model.employee;public class employeeTest {public static void testAddEmp(){ employee emp=new employee(); employeeDao dao=new employeeDaoimpal(); emp.setEmployeeId(11); emp.setEmployeeName("爽"); emp.setEmployeeSax("女"); emp.setEmployeePost("測試經理"); emp.setEmployeeDepartment("研發部"); int count =dao.insertEnterprise(emp); if (count==1) {System.out.println("員工資訊錄入成功!");}else {System.out.println("員工資訊錄入失敗!");} } public static void testUpdateEmp(){ employee emp=new employee(); emp.setEmployeeId(1); emp.setEmployeeName("雷浩明"); emp.setEmployeeSax("男"); emp.setEmployeePost("CEO"); emp.setEmployeeDepartment("總裁辦"); employeeDao dao=new employeeDaoimpal(); int count =dao.updateEnterprise(emp); if (count==1) {System.out.println("員工資訊修改成功!");}else {System.out.println("員工資訊修改失敗!");} } public static void testSelectEmp(){ } public static void testDeleteEmp(){ employeeDao dao =new employeeDaoimpal();int count = dao.deleteEnterprise(11);if(count == 1){System.out.println("員工資訊刪除成功");}else {System.out.println("員工資訊刪除失敗");} } public static void testGetCount(){ employeeDao dao =new employeeDaoimpal();System.out.println("共有"+dao.countAll()+"名員工");} public static void testGetEmpById(){ employeeDao dao =new employeeDaoimpal(); employee emp=dao.findEnterprise(1);System.out.println("職務是:"+emp.getEmployeePost()+" 所在部門:"+emp.getEmployeeDepartment());} public static void testGetAll(){ employeeDao dao =new employeeDaoimpal();List<employee> emps = dao.getAllEnterprise();System.out.println("西安涯創資訊技術有限公司員工明細");System.out.println("---------------------------");System.out.println("員工編號\t員工姓名\t員工職位\t所在部門");for (employee emp : emps) {System.out.println(emp.getEmployeeId()+"\t"+emp.getEmployeeName()+"\t"+emp.getEmployeePost()+"\t"+emp.getEmployeeDepartment());}} public static void main(String[] args) { //testAddEmp(); //testUpdateEmp(); //testDeleteEmp(); //testGetCount(); //testGetEmpById(); testGetAll();} }
t_employee.sql
/*SQLyog Ultimate v8.32 MySQL - 5.0.27-community : Database - test**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=‘‘*/;/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;USE `test`;/*Table structure for table `t_employee` */DROP TABLE IF EXISTS `t_employee`;CREATE TABLE `t_employee` ( `employeeid` int(10) NOT NULL COMMENT ‘員工id‘, `employeename` varchar(20) NOT NULL COMMENT ‘員工姓名‘, `employeesax` varchar(20) default NULL COMMENT ‘員工性別‘, `employeepost` varchar(30) NOT NULL COMMENT ‘員工職務‘, `employeedepartment` varchar(30) NOT NULL default ‘‘ COMMENT ‘員工所在部門‘, PRIMARY KEY (`employeeid`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;/*Data for the table `t_employee` */insert into `t_employee`(`employeeid`,`employeename`,`employeesax`,`employeepost`,`employeedepartment`) values (1,‘雷浩明‘,‘男‘,‘CEO‘,‘總裁辦‘),(2,‘劉軍‘,‘男‘,‘執行總裁‘,‘總裁辦‘),(3,‘李海濤‘,‘男‘,‘總經理‘,‘總經辦‘),(4,‘邊肖‘,‘男‘,‘CTO‘,‘技術部‘),(5,‘柳青‘,‘女‘,‘經理‘,‘經營管理部‘),(6,‘高曉梅‘,‘女‘,‘財務‘,‘財務部‘),(7,‘曹舜水‘,‘男‘,‘研發經理‘,‘研發部‘),(8,‘董華‘,‘男‘,‘專案經理‘,‘研發部‘),(9,‘張軍華‘,‘男‘,‘產品經理‘,‘產品部‘),(10,‘曾爽‘,‘女‘,‘測試經理‘,‘研發部‘);/*!40101 SET [email protected]_SQL_MODE */;/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;/*!40014 SET [email protected]_UNIQUE_CHECKS */;/*!40111 SET [email protected]_SQL_NOTES */;
項目代碼結構:
項目需要的jar包:http://pan.baidu.com/s/1AWnPc。
mybatis串連mysql資料庫實現的jdbc功能