MyBatis项目搭建,以及基础增删改查

什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

jar下载地址

提取码:2bnz

项目源码下载地址

提取码:9oqw

将jar包下载下来之后我们开始搭建我们的第一个MyBatis项目

一、新建javaWeb项目,普通项目也可,我的项目结构图如下

二、导入Jar包,将下载下来的,jar解压导入到lib目录下,这样jar就配置完成了

第三步、xml文件的配置,在src下面新建“MyBatis-config.xml”里面内容如下,里面我都注释的十分清楚了,所以直接复制就好了

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3     "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <!-- 和spring整合后 environments配置将废除 -->
 6     <environments default="development">
 7         <environment id="development">
 8             <!-- 使用jdbc事务管理 -->
 9             <transactionManager type="JDBC" />
10             <!-- 数据库连接池 -->
11             <dataSource type="POOLED">
12             <!-- 获取驱动 -->
13                 <property name="driver" value="com.mysql.jdbc.Driver" />
14             <!-- 设置数据库地址 -->
15                 <property name="url" value="jdbc:mysql://localhost:3306/DBgood?characterEncoding=utf-8" />
16             <!-- 设置数据库账号 -->
17                 <property name="username" value="root" />
18             <!-- 设置数据库密码 -->
19                 <property name="password" value="123456" />
20             </dataSource>
21         </environment>
22     </environments>
23 </configuration>

第四步、创建log4j.properties(可有可无,如果配置会打印一些运行的信息),同样也是在src目录之下,代码如下

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

第五步、新建一个数据库,数据库的名字“DBgood” 建表语句如下

 1 SET FOREIGN_KEY_CHECKS=0;
 2 
 3 -- ----------------------------
 4 -- Table structure for good
 5 -- ----------------------------
 6 DROP TABLE IF EXISTS `good`;
 7 CREATE TABLE `good` (
 8   `goodID` int(11) NOT NULL AUTO_INCREMENT,
 9   `goodName` varchar(255) NOT NULL,
10   `img` varchar(255) NOT NULL,
11   `price` varchar(255) NOT NULL,
12   `type` varchar(255) NOT NULL,
13   PRIMARY KEY (`goodID`)
14 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
15 
16 -- ----------------------------
17 -- Records of good
18 -- ----------------------------
19 INSERT INTO `good` VALUES ('1', '小浣熊干脆面', 'D://', '0.5', '食物');
20 INSERT INTO `good` VALUES ('2', '小浣熊干脆面', 'D://', '0.5', '食物');

第六步、在“com.lianghua.bean”包下面新建实体类

 1 package com.lianghua.bean;
 2 
 3 public class Good {
 4     
 5     private int goodID    ;
 6     private String goodName  ;
 7     private String img       ;
 8     private String price     ;
 9     private String type      ;
10 
11     public int getGoodID() {
12         return goodID;
13     }
14     public void setGoodID(int goodID) {
15         this.goodID = goodID;
16     }
17     public String getGoodName() {
18         return goodName;
19     }
20     public void setGoodName(String goodName) {
21         this.goodName = goodName;
22     }
23     public String getImg() {
24         return img;
25     }
26     public void setImg(String img) {
27         this.img = img;
28     }
29     public String getPrice() {
30         return price;
31     }
32     public void setPrice(String price) {
33         this.price = price;
34     }
35     public String getType() {
36         return type;
37     }
38     public void setType(String type) {
39         this.type = type;
40     }
41     @Override
42     public String toString() {
43         return "Good [goodID=" + goodID + ", goodName=" + goodName + ", img=" + img + ", price=" + price + ", type="
44                 + type + "]";
45     }
46     
47 
48 }

第七步、在“com,lianghua.mapper”包下面新建实体类的mapper,注意这个类是接口“interface”类型代码如下

 1 package com.lianghua.mapper;
 2 
 3 import java.util.List;
 4 
 5 import com.lianghua.bean.Good;
 6 
 7 public interface GoodMapper {
 8     //1、方法名 与 map.xml中的 节点的ID一致
 9     //2、传入的参数与  map.xml中 的传入类型 (parameterType)保持一致
10     //3、返回值类型 也要和 map.xml中 返回值类型保持一致
11     //4、map.xml 中的namespace的值为 当前接口 
12     public List<Good> listGood( );
13 
14 }

第八步、在“com,lianghua.mapper”目录下创建sql映射文件GoodMapper.xml,代码如下

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <!-- namespace: 1. namespace必须和Mapper接口类路径一致 -->
 6 <mapper namespace="com.lianghua.mapper.GoodMapper">
 7     <!-- 2. id必须和Mapper接口方法名一致 -->
 8     <!-- 3. parameterType必须和接口方法参数类型一致 -->
 9     <!-- 4. resultType必须和接口方法返回值类型一致 -->
10     <select id="listGood"  resultType="com.lianghua.bean.Good">
11          <!-- 这里写sql语句 -->
12          SELECT * FROM good
13     </select>
14 
15 </mapper>

这个时候我的代码结构如下

第九步、如果想让 这个mpper生效还需要在MyBatis-config.xml中添加三行代码,如果想再添加一个mapper只需要再写一行<mapper />即可

1 <mappers>
2         <mapper resource="com/lianghua/mapper/GoodMapper.xml"/>
3 </mappers>

这个时候基本已经配置完成了,我们来运行一下测试一下,看看能不能查到数据

第十步、运行

 1 package com.lianghua.service;
 2 
 3 import java.io.Reader;
 4 import java.util.Date;
 5 
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 
11 import com.lianghua.mapper.GoodMapper;
12 
13 
14 public class Test {
15      public static void save() throws Exception{
16             //1、加载配置文件
17             Reader reader= Resources.getResourceAsReader("MyBatis-config.xml");
18             //2、创建 SqlSessionFactoryBuilder 对象
19             SqlSessionFactoryBuilder sfb = new SqlSessionFactoryBuilder();
20             //3、创建SqlSessionFactory
21             SqlSessionFactory sf = sfb.build(reader);
22             //4、打开SqlSession对象
23             SqlSession sqlsession = sf.openSession();
24             //5、创建接口 mapper 的实体类对象
25             GoodMapper bMapper = sqlsession.getMapper(GoodMapper.class);
26             //5、执行对应的方法,并打印数据
27             
28             System.out.println("数据:"+bMapper.listGood());
29             //6、执行提交操作
30             sqlsession.commit();
31             //7、关闭资源
32             sqlsession.close();
33             
34             
35         }
36      
37      public static void main(String[] args) throws Exception {
38          save();
39     }
40         
41 
42 }

 结果如下

基本查询

猜你喜欢

转载自www.cnblogs.com/lianghua/p/10846746.html