一、下载 Mybatis
下载地址:
https://github.com/mybatis/mybatis-3/releases
1、首先下载 我们要用的 mybatis 的 jar 包 :
mybatis-3.4.4.zip
解压,根目录就能看到我们要的 mybatisjar的 jar包:mybatis-3.4.4.jar
2、然后下载 再下载一个源码包 :
Source code (zip)
其中 源码包中的
mybatis-3-mybatis-3.4.4\src\test\java\org\apache\ibatis\submitted\complex_property\Configuration.xml 是核心配置文件,我们拷走
二、项目准备
1、项目结构
① 新建 Java 项目
② 在 src 下新建 com.liuyanzhao.mybatis.po 包(用来放持久化类,和数据库对应)
和 com.liuyanzhao.mybatis.first 包 (用来放 CURD 实现代码)
③ 在 src 下新建(或者拷贝)Configuration.xml (mybatis核心配置文件)和 user.xml (映射文件)
2、导入 两个必备的 jar 包
- mysql-jdbc 驱动包: mysql-connector-java-5.1.41-bin.jar
- mybatis 包:mybatis-3.4.4.jar
在项目中新建一个 lib 目录,将两个包拷贝到 lib 中,然后将两个包加入环境(build path)中
3、新建数据库和数据表
我这里在本地测试,主机 localhost,数据库用户名root,密码为空
① 新建数据库:mybatis
② 新建数据表:user表
表结构如下,五个字段(id,username,gender,birthday,address)
三、代码实现
1、Configuration.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">
- <property name="" value=""/>
- </transactionManager>
-
- <dataSource type="UNPOOLED">
- <property name="driver" value="com.mysql.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8"/>
- <property name="username" value="root"/>
- <property name="password" value=""/>
- </dataSource>
- </environment>
- </environments>
-
- <mappers>
- <mapper resource="user.xml" />
- </mappers>
- </configuration>
2、user.xml
- <?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命名空间,作用是对sql进行分类话管理,理解sql,理解sql隔离
- 注意:使用mapper代理方法开发,namespace有着特殊的作用
- -->
- <mapper namespace="test">
-
- <!--
- id:表示映射文件中的sql
- 将sql语句封装到mappedStatement对象中,所以称id为Statement的id
- parameterType:指定输入参数的类型
- resultType:指定就是单条记录所映射的java对象类型
- #{}表示占位符,相当于?
- #{id} 其中id表示接受输入的参数,参数名就是id,如果输入的参数是简单类型,#{}中的参数可以任意,可以value或者其他名称
- ${}:表示拼接sql串,将接受到的参数的内容不加任何修饰直接拼接在sql中
- ${}安全隐患:使用${}拼接sql,引起sql注入
- ${value}:接受输入参数的内容,如果传入类型是简单类型,${}中只有使用value
- -->
- <select id="findUserById" parameterType="int" resultType="com.liuyanzhao.mybatis.po.User">
- SELECT * FROM user WHERE id=#{value}
- </select>
-
- <select id="findUserByName" parameterType="java.lang.String" resultType="com.liuyanzhao.mybatis.po.User">
- SELECT * FROM user WHERE username LIKE '%${value}%'
- </select>
-
-
- <insert id="insertUser" parameterType="com.liuyanzhao.mybatis.po.User">
- <!--
- 将插入数据的主键返回,返回到user对象中
- SELECT LAST_INSERT_ID(); 得到insert进去的主键值,只适用自增主键
- -->
- <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
- SELECT LAST_INSERT_ID()
- </selectKey>
- INSERT INTO user(username,birthday,gender,address) VALUE(#{username},#{birthday},#{gender},#{address})
- </insert>
-
- <delete id="deleteUserById" parameterType="java.lang.Integer">
- DELETE FROM user WHERE id=#{id}
- </delete>
- <!--更新用户,根据id
- 需要传入用户信息
- parameterType指定user对象,包括id和更新信息。注意:id必须存在
- #{id}:从输入的user对象中获取id的属性值
- -->
- <update id="updateUserById" parameterType="com.liuyanzhao.mybatis.po.User">
- UPDATE user SET username=#{username},birthday=#{birthday},gender=#{gender},address=#{address} WHERE id=#{id}
- </update>
- </mapper>
3、User.java
- package com.liuyanzhao.mybatis.po;
- import java.util.Date;
- public class User {
- private int id;
- private String username;
- private String gender;
- private Date birthday;
- private String address;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getGender() {
- return gender;
- }
- public void setGender(String gender) {
- this.gender = gender;
- }
- public Date getBirthday() {
- return birthday;
- }
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- @Override
- public String toString() {
- return "User{" +
- "id=" + id +
- ", username='" + username + '\'' +
- ", gender='" + gender + '\'' +
- ", birthday=" + birthday +
- ", address='" + address + '\'' +
- '}';
- }
- }
4、MyBatisFirst.java
本文链接:
https://liuyanzhao.com/5762.html
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏