基础Mybatis操作数据库(MySql)(一)
来源:互联网 发布:淘宝开店怎么做代销 编辑:程序博客网 时间:2024/06/16 05:49
基础Mybatis操作数据库(MySql)(一)
- 配置环境:需要用到2个jar包:mybatis-3.2.2.jar mysql-connector-java-5.17-bin.jar
- 编写DAO层 packcage(com.miao.dao;), class(UserDAO)
package com.miao.dao;import com.miao.entity.User;public interface UserDAO { public void addUser(User user); public void deleteUser(String uId); public User queryUserById(String uId); public User updateUser(User user);}
3.编写实体层 (entity) package com.miao.entity;
package com.miao.entity;import java.io.Serializable;public class User implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String uId; private String uName; private Integer uAge; private Integer uSex; private String uPhone; private String uDept; public String getuId() { return uId; } public void setuId(String uId) { this.uId = uId; } public String getuName() { return uName; } public void setuName(String uName) { this.uName = uName; } public Integer getuAge() { return uAge; } public void setuAge(Integer uAge) { this.uAge = uAge; } public Integer getuSex() { return uSex; } public void setuSex(Integer uSex) { this.uSex = uSex; } public String getuPhone() { return uPhone; } public void setuPhone(String uPhone) { this.uPhone = uPhone; } public String getuDept() { return uDept; } public void setuDept(String uDept) { this.uDept = uDept; } @Override public String toString() { //User user = new User(); system.out.print(user);会自动调用toString方法. return "User [uId=" + uId + ", uName=" + uName + ", uAge=" + uAge + ", uSex=" + uSex + ", uPhone=" + uPhone + ", uDept=" + uDept + "]"; } public User(String uId, String uName, Integer uAge, Integer uSex, String uPhone, String uDept) { super(); this.uId = uId; this.uName = uName; this.uAge = uAge; this.uSex = uSex; this.uPhone = uPhone; this.uDept = uDept; }}
4.编写DAO层的影射层.
<?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.miao.dao.UserDAO"> <!-- 增加 --> <insert id="addUser" parameterType="com.miao.entity.User"> insert into user(u_id,u_name,u_age,u_sex,u_phone,u_dept) values(#{uId},#{uName},#{uAge},#{uSex},#{uPhone},#{uDept}) </insert> <!-- 删除 --> <delete id="deleteUser" parameterType="java.lang.String"> delete from user where u_id=#{uId} </delete> <!-- 查询 --> <select id="queryUserById" parameterType="java.lang.String" resultType="com.miao.entity.User"> select u_id as "uId",u_name as "uName",u_age as "uAge",u_sex as "uSex",u_phone as "uPhone",u_dept as "uDept" from user where u_id=#{uId} </select> <!-- 可能有错 --> <update id="updateUser" parameterType="com.miao.entity.User" > update user set u_name=#{uName},u_age=#{uAge,jdbcType=INTEGER},u_sex=#{uSex,jdbcType=INTEGER},u_phone=#{uPhone},u_dept=#{uDept} where u_id=#{uId,jdbcType=VARCHAR} </update></mapper>
5.编写启动mybatis的工具(package com.miao.util;)
package com.miao.util;import java.io.IOException;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;public class MybatisUtil { private static SqlSessionFactory factory=null; static{ try { SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); Reader reader=Resources.getResourceAsReader("mybatis-config.xml"); factory=builder.build(reader); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSession(){ SqlSession session=factory.openSession(); return session; } public static void close(SqlSession session){ if(session!=null) session.close(); }
这里的util多了一个 [public static SqlSession getSqlSession(boolean isAutoCommit) { return getSqlSessionFactory().openSession(isAutoCommit); } true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务 * false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务 ]package com.zb.sql.util;import java.io.InputStream;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil { /** * 获取SqlSessionFactory * @return SqlSessionFactory */ public static SqlSessionFactory getSqlSessionFactory() { String resource = "conf.xml"; InputStream is = MyBatisUtil.class.getClassLoader().getResourceAsStream(resource); SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); return factory; } /** * 获取SqlSession * @return SqlSession */ public static SqlSession getSqlSession() { return getSqlSessionFactory().openSession(); } /** * 获取SqlSession * @param isAutoCommit * true 表示创建的SqlSession对象在执行完SQL之后会自动提交事务 * false 表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务 * @return SqlSession */ public static SqlSession getSqlSession(boolean isAutoCommit) { return getSqlSessionFactory().openSession(isAutoCommit); }}
6.
编写xml 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" ><!-- 配置mybatis运行环境 --><configuration> <environments default="mysql"> <environment id="mysql"> <transactionManager type="jdbc"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://www.ishuaifei.com:3306/db_WxDevelop"/> <property name="username" value="root"/> <property name="password" value="123456789"/> </dataSource> </environment> </environments> <mappers> <mapper resource = "com/miao/dao/impl/OrderDAOImpl.xml"/> <mapper resource="com/miao/dao/impl/UserDAOImpl.xml" /> </mappers></configuration>
0 0
- 基础Mybatis操作数据库(MySql)(一)
- MYBATIS+MYSQL 批量操作数据库
- 一 mybatis操作oracle数据库
- mysql数据库基础操作
- MySQL数据库操作基础
- MySql数据库基础操作
- Mysql数据库基础操作
- mysql基础操作(一)
- mysql-(一)--基础操作
- 【MySQL】数据库操作【一】
- mysql数据库操作(一)
- mysql数据库基础--数据库操作
- MySQL 数据库基础操作类
- Mysql数据库的基础操作
- python-基础-操作mysql数据库
- MySQL基础-数据库基本操作
- MySQL数据库的操作基础
- MySQL数据库的基础操作
- Groovy学习
- ManualResetEvent详解
- TIME_WAIT
- Http协议讲解
- 硬件加速不支持的问题
- 基础Mybatis操作数据库(MySql)(一)
- 【WebAPI】将硬件GPS转换为高德GPS(WGS-84转GCJ-02)
- 二级导航
- QT鼠标左键按下,鼠标样式改变,释放之后,鼠标样式还原
- 使用jqPaginator.js分页中文显示乱码
- 557. Reverse Words in a String III的C++解法
- php自学记录
- iframe标签,子窗口页面更换刷新。
- 【java基础知识】重载与重写的区别