MyBatis创建项目(1)
来源:互联网 发布:qt5 串口助手编程 编辑:程序博客网 时间:2024/06/07 15:42
MyBatis介绍:
MyBatis 是一款优秀的持久层框架,其前身是iBatis,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码
和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java
Objects,普通的 Java对象)映射成数据库中的记录。
现在软件开发常用框架:Spring、SpringMVC、MyBatis、Hibernate、struts2
控制层框架(代替传统的Servlet):SpringMVC/struts2
持久层框架(dao层操作,代替传统的):MyBatis/hibernate
整合框架:Spring
SSH:Spring struts2 Hibernate
SSM:Spring SpringMVC MyBatis
源生JDBD的缺点:
1、SQL语句是硬编码,如果需求变更需要修改SQL就要修改java代码,需要重新编译,系统维护不方便;
2、通过preparedStatement向占位符设置参数,存在硬编码(参数位置,参数);
3、遍历查询结果集存在硬编码(列名);
MyBatis的优点:
1、将SQL语句同意配置在文件中,修改SQL不需要java代码;
2、将sql中的占位符及对应的参数类型设置在配置文件中,能够自动输入映射;
1、创建一个Dynamic Web project工程;
2.1 将mybatis-3.4.5.jar复制到WebContent/WEB-INF/lib目录下;
2.2 打开lib文件夹,将此文件夹下的所有的jar包都拷贝复制到WebContent/WEB-INF/lib目录下;
3、下载jJDBC的驱动包mysql-connector-java-5.1.38.jar,也拷贝到WebContent/WEB-INF/lib目录下;
4、创建需要的数据库表,我自己以user(id,username,password)表演示;
6.1 接口:
7.4在主配置文件中映入SQL映射文件(配置映射文件)
8、编写Dao方法,调用SQL映射文件
8.1 通过I/O流加载主配置文件
8.2 创建SessionFactory对象
8.3 创建SQLSession对象
8.4 通过SQLSession对象调用相关的SQL映射执行数据库操作
8.5 提交事务(增删改操作必须提交事务)
MyBatis 是一款优秀的持久层框架,其前身是iBatis,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码
和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java
Objects,普通的 Java对象)映射成数据库中的记录。
现在软件开发常用框架:Spring、SpringMVC、MyBatis、Hibernate、struts2
控制层框架(代替传统的Servlet):SpringMVC/struts2
持久层框架(dao层操作,代替传统的):MyBatis/hibernate
整合框架:Spring
SSH:Spring struts2 Hibernate
SSM:Spring SpringMVC MyBatis
源生JDBD的缺点:
1、SQL语句是硬编码,如果需求变更需要修改SQL就要修改java代码,需要重新编译,系统维护不方便;
2、通过preparedStatement向占位符设置参数,存在硬编码(参数位置,参数);
3、遍历查询结果集存在硬编码(列名);
MyBatis的优点:
1、将SQL语句同意配置在文件中,修改SQL不需要java代码;
2、将sql中的占位符及对应的参数类型设置在配置文件中,能够自动输入映射;
3、自动进行SQL查询结果向java对象映射(输出映射)
1、创建一个Dynamic Web project工程;
2、MyBatis的下载及jar包:https://github.com/mybatis,我自己下载了mybatis-3.4.5.zip,当然各版本几乎没什么差别,建议使用最新版本,具
体情况根据项目需求而定。
解压之后目录结构如下:2.1 将mybatis-3.4.5.jar复制到WebContent/WEB-INF/lib目录下;
2.2 打开lib文件夹,将此文件夹下的所有的jar包都拷贝复制到WebContent/WEB-INF/lib目录下;
3、下载jJDBC的驱动包mysql-connector-java-5.1.38.jar,也拷贝到WebContent/WEB-INF/lib目录下;
4、创建需要的数据库表,我自己以user(id,username,password)表演示;
5、在实体类包domain下定义实体类(包名的命名规则:com.公司域名.项目名.模块名.子模块名...):
package com.***.mybatis.***.domain;/** * <p>ClassName : User</p> * <p>Company : ***</p> * @author *** * @date 2017年11月9日 上午11:01:43 */public class User {private String id;private String username;private String password;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + "]";}}
6.1 接口:
package com.***.mybatis.***.dao;import java.io.IOException;import com.***.mybatis.***.domain.User;/** * <p>ClassName:UserDao</p> * @功能描述 用户数据持久层接口 * <p>Company:***</p> * @author *** * @date 2017年11月9日 下午3:44:22 */public interface UserDao {/** * 增加新用户 * @return * @throws IOException */public int saveAddUser(User user) throws IOException;}
6.2 接口实现类:
import java.io.InputStream;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.***.dao.UserDao;import com.***.mybatis.***.domain.User;/** * <p>ClassName:UserDaoImpl</p> * @功能描述 用户数据持久层实现类 * <p>Company:***</p> * @author *** * @date 2017年11月10日 上午10:58:15 */public class UserDaoImpl implements UserDao {/** * 增加新用户 * @param user * @return * @throws IOException */@Overridepublic int saveAddUser(User user) throws IOException {System.out.println("执行添加用户方法!");return 0;}}
7、安装MyBatis(重点)
7.1 在src目录下创建MyBatis主配置文件:mybatis-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><!-- 加载数据库配置文件 --><properties resource="resources/db.properties" /><environments default="mysql"><environment id="mysql"><!-- 以jdbc的方式管理事务 --><transactionManager type="JDBC" /><!-- 配置数据源 --><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://127.0.0.1:3306/***" /><property name="username" value="root" /><property name="password" value="root" /><!-- <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> --></dataSource></environment></environments><!-- 配置映射文件 --><mappers><mapper resource="com/***/mybatis/***/dao/UserDao.xml" /></mappers></configuration>
7.2 在Dao接口的同级别目录中创建SQL映射文件名为 接口名.xml
7.3 在主配置文件mybatis-config.xml中定义MyBatis的运行环境(配置数据源);<?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"> <!-- namespace就相当于java中的package --><mapper namespace="user"><insert id="saveAddUser" parameterType="com.***.mybatis.***.domain.User">insert into user (username,password) values(#{username},#{password})</insert></mapper>
7.4在主配置文件中映入SQL映射文件(配置映射文件)
8、编写Dao方法,调用SQL映射文件
8.1 通过I/O流加载主配置文件
8.2 创建SessionFactory对象
8.3 创建SQLSession对象
8.4 通过SQLSession对象调用相关的SQL映射执行数据库操作
8.5 提交事务(增删改操作必须提交事务)
8.6 关闭SQLSession对象
import java.io.InputStream;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.***.dao.UserDao;import com.***.mybatis.***.domain.User;/** * <p>ClassName:UserDaoImpl</p> * @功能描述 用户数据持久层实现类 * <p>Company:***</p> * @author *** * @date 2017年11月10日 上午10:58:15 */public class UserDaoImpl implements UserDao {/** * 增加新用户 * @param user * @return * @throws IOException */@Overridepublic int saveAddUser(User user) throws IOException {System.out.println("执行添加用户方法!");// 用流的形式加载mybatis主配置文件String resource = "resources/mybatis/mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);// 获得SqlSessionFactory对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 获得SqlSession对象,与数据库会话的对象SqlSession session = sqlSessionFactory.openSession();int result = session.insert("user.saveAddUser", user);session.commit();return result;}}
9、创建测试类:
package com.wolfhome.mybatis.hrz.test;import java.io.IOException;import com.wolfhome.mybatis.hrz.dao.impl.UserDaoImpl;import com.wolfhome.mybatis.hrz.domain.User;/** * <p>ClassName:Test</p> * @功能描述 测试类 * <p>Company:nstr</p> * @author Hrzhi * @date 2017年11月9日 下午4:40:37 */public class Test {public static void main(String[] args) {UserDaoImpl userDao = new UserDaoImpl();//添加用户User user = new User();user.setUsername("张三");user.setPassword("123456");try {int result = userDao.saveAddUser(user);System.out.println("添加成功"+ result + "个新用户");} catch (IOException e) {e.printStackTrace();}}}
阅读全文
0 0
- MyBatis创建项目(1)
- spring + mybatis 创建项目
- Mybatis(一)创建项目
- 创建SpringMVC+Mybatis项目
- 【Mybatis学习】Eclipse创建Maven-Mybatis项目
- Mybatis+Spring整合创建Web项目
- spring+spring mvc +mybatis项目创建
- 创建springmvc+mybatis的web项目
- Mybatis框架开发-Maven创建web项目
- idea创建maven+springmvc+mybatis+jetty项目
- Mybatis+Spring整合创建Web项目
- Mybatis+Spring整合创建Web项目
- 使用IDEA创建maven Mybatis-SpringMvc项目
- 【SSM】Maven创建web项目:SpringMVC+Mybatis
- Spring+MyBatis+JUnit+Maven创建项目实例
- MyBatis创建项目(2)-动态代理
- 使用Maven创建Springmvc+Mybatis+Velocity项目
- 从零开始搭建maven+springmvc+mybatis web项目(1)---maven项目目录创建
- 输入一个大写字母,显示三角形
- 二叉树经典问题——已知中序和前序重建二叉树
- 记一次http请求报400 badRequest
- rsyslog 入门 第五篇 out put elasticsearch
- Ubuntu下查看CPU、内存和硬盘详细信息的几个命令
- MyBatis创建项目(1)
- 1015. 德才论 (25)
- Ubuntu 14.04下Django+MySQL安装部署全过程
- JS 字符替换处理replace/replaceAll
- kotlin允许方法传null值时遇到的问题
- 刷LeetCode(8)——String to Integer (atoi)
- iOS 11 Xcode 9 沙箱账号登录不上 反复弹出登录窗口(亲测 OK)
- redis主从复制搭建
- 数据分析的统计学基础--抽样估计