太原网站制作开发,怎么做品牌的官方网站,体彩网站开发,咸阳住房和城乡建设规划局网站本文转载#xff1a;本人文笔不行#xff0c;根据上面博客内容引导#xff0c;自己整理了一些东西首先给大家推荐几个网页#xff1a;MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code#xff0c;并且改名为MyBa…本文转载本人文笔不行根据上面博客内容引导自己整理了一些东西首先给大家推荐几个网页MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code并且改名为MyBatis 。2013年11月迁移到Github。一、理解什么是MyBatisMyBatis 是支持普通 SQL 查询存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射将接口和 Java 的 POJO( Plain Old Java Objects普通的Java 对象)映射成数据库中的记录.1)MyBATIS 目前提供了三种语言实现的版本包括Java、.NET以及Ruby。(我主要学习java就讲java的使用)2)它提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。3)mybatis与hibernate的对比mybatis提供一种“半自动化”的ORM实现。这里的“半自动化”是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言“全自动”ORM实现了POJO和数据库表之间的映射以及 SQL 的自动生成和执行。而mybatis的着力点则在于POJO与SQL之间的映射关系。二、简单例子(快速入门)1)首先建立项目java web2)配置mybatis所需的jar包,pom.xmlmysqlmysql-connector-java5.1.35org.mybatismybatis3.2.8org.slf4jslf4j-api1.7.7ch.qos.logbacklogback-core1.1.3ch.qos.logbacklogback-access1.1.3ch.qos.logbacklogback-classic1.1.33)创建数据库数据(mybatis),创建表(t_user)CREATE TABLE t_user (id int(11) NOT NULL auto_increment,username varchar(20) default NULL,password varchar(20) default NULL,account double(10,2) default NULL,PRIMARY KEY (id)) ENGINEMyISAM AUTO_INCREMENT7 DEFAULT CHARSETutf84)mysql驱动配置文件mysql.propertiesjdbc.drivercom.mysql.jdbc.Driverjdbc.urljdbc:mysql://127.0.0.1:3306/mybatisjdbc.usernameadminjdbc.password1234565)添加mybatis配置文件mybatis.cfg.xml6)创建对应的实体对象7)创建方法接口UserMapper.java和定义操作t_user表的sql映射文件UserMapper.xml提供简单的增删改查数据信息。packagecom.wenyin.mybatis.mapper;importjava.util.List;importcom.wenyin.mybatis.beans.UserBean;public interfaceUserMapper {/*** 新增用戶*paramuser*return*throwsException*/public int insertUser(UserBean user) throwsException;/*** 修改用戶*paramuser*paramid*return*throwsException*/public int updateUser (UserBean user,int id) throwsException;/*** 刪除用戶*paramid*return*throwsException*/public int deleteUser(int id) throwsException;/*** 根据id查询用户信息*paramid*return*throwsException*/public UserBean selectUserById(int id) throwsException;/*** 查询所有的用户信息*return*throwsException*/public List selectAllUser() throwsException;}UserMapper.xmlinsert into t_user (username,password,account) values (#{username},#{password},#{account})update t_user set username#{username},password#{password},account#{account} where id#{id}delete from t_user where id#{id}select * from t_user where id#{id}select * from t_user这时需要为mybatis.cfg.xml里注册UserMapper.xml文件。参照第5)步骤8)需要建立一个工具类文件packagecom.wenyin.mybatis.tools;importjava.io.Reader;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;public classDBTools {public staticSqlSessionFactory sessionFactory;static{try{//使用MyBatis提供的Resources类加载mybatis的配置文件Reader reader Resources.getResourceAsReader(mybatis.cfg.xml);//构建sqlSession的工厂sessionFactory newSqlSessionFactoryBuilder().build(reader);}catch(Exception e) {e.printStackTrace();}}//创建能执行映射文件中sql的sqlSessionpublic staticSqlSession getSession(){returnsessionFactory.openSession();}}9)写个测试UserService.javapackagecom.wenyin.mybatis.service;importjava.util.List;importorg.apache.ibatis.session.SqlSession;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importcom.wenyin.mybatis.beans.UserBean;importcom.wenyin.mybatis.mapper.UserMapper;importcom.wenyin.mybatis.tools.DBTools;public classUserService {private static Logger logger LoggerFactory.getLogger(UserService.class);public static voidmain(String[] args) {insertUser();//deleteUser(1);//selectUserById(2);//selectAllUser();}/*** 新增用户*/private static booleaninsertUser(){SqlSession sessionDBTools.getSession();UserMapper mapper session.getMapper(UserMapper.class);UserBean user new UserBean(test01, 123456, 7000.0);try{int indexmapper.insertUser(user);boolean boolindex0?true:false;logger.error(新增用户user对象:{},操作状态:{},newObject[]{user,bool});session.commit();returnbool;}catch(Exception e) {e.printStackTrace();session.rollback();return false;}finally{session.close();}}/*** 删除用户*paramid 用户ID*/private static boolean deleteUser(intid){SqlSession sessionDBTools.getSession();UserMapper mappersession.getMapper(UserMapper.class);try{int indexmapper.deleteUser(id);boolean boolindex0?true:false;logger.debug(根据用户id:{},操作状态{},newObject[]{id,bool});session.commit();returnbool;}catch(Exception e) {e.printStackTrace();session.rollback();return false;}finally{session.close();}}/*** 根据id查询用户*paramid*/private static void selectUserById(intid){SqlSession sessionDBTools.getSession();UserMapper mappersession.getMapper(UserMapper.class);try{UserBean usermapper.selectUserById(id);logger.debug(根据用户Id:{},查询用户信息:{},newObject[]{id,user});session.commit();}catch(Exception e) {e.printStackTrace();session.rollback();}finally{session.close();}}/*** 查询所有的用户*/private static voidselectAllUser(){SqlSession sessionDBTools.getSession();UserMapper mappersession.getMapper(UserMapper.class);try{List usermapper.selectAllUser();logger.debug(获取所用的用户:{},user);session.commit();}catch(Exception e) {e.printStackTrace();session.rollback();}finally{session.close();}}}新增运行结果如果返回Mapselect username,id fromt_user whereid#{id}返回ListSELECT * FROM t_user