Mybatis基本配置(一)
2024-09-19 10:25:50
1. Mybatis介绍
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
2. 准备jar包
1)mybatis-3.3.0.jar, Mybatis包。
2)sqljdbc4.jar ,因为我们要用到SQLSERVER,所以需要此包。
3. 准备SQL SERVER表结构及数据
创建商品信息表并为商品信息表添加要用到的测试数据
CREATE TABLE tbInfoPart (
ID INT IDENTITY(1,1), --自增id
PartCode NVARCHAR(100), --商品编码
PartName NVARCHAR(200), --商品名称
Unit NVARCHAR(4), --商品单位
SalePrice NUMERIC(14,6), --售价
PRIMARY KEY(ID)
) INSERT INTO tbInfoPart (PartCode, PartName, Unit, SalePrice) VALUES
('001-0001', 'TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视', '台', 1099.90)
INSERT INTO tbInfoPart (PartCode, PartName, Unit, SalePrice) VALUES
('001-0002', 'TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视', '台', 2799.00)
4. MyBatis基本配置
1)打开MyExclipse,新建一个java project
2)添加工程根目录lib文件夹,将我们所需要的两个jar包文件拷贝到这个文件夹下,并右键Build Path ==> Add To Build Path
3)在src目录下添加mybatis.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" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<!-- jdbc驱动 -->
<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<!-- 数据库链接 -->
<property name="url" value="jdbc:sqlserver://127.0.0.1; DatabaseName=Mybatis" />
<!-- 数据库用户名 -->
<property name="username" value="sa" />
<!-- 数据库密码 -->
<property name="password" value="-+" />
</dataSource>
</environment>
</environments>
</configuration>
4)定义表tbInfoPart(商品信息表)对应的实体类
package com.mybatis.entity; public class PartInfo {
private int id;
private String partCode;
private String partName;
private String unit;
private Float salePrice;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPartCode() {
return partCode;
}
public void setPartCode(String partCode) {
this.partCode = partCode;
}
public String getPartName() {
return partName;
}
public void setPartName(String partName) {
this.partName = partName;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public Float getSalePrice() {
return salePrice;
}
public void setSalePrice(Float salePrice) {
this.salePrice = salePrice;
}
}
5)定义维护tbInfoPart(商品信息表)的接口
package com.mybatis.dao; import com.mybatis.entity.PartInfo; public interface PartDao {
public PartInfo getPartInfoByID(int id);
}
6)配置tbInfoPart(商品信息表)接口在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为dao接口类的全名(报名+类名) -->
<mapper namespace="com.mybatis.dao.PartDao">
<!-- 如果要执行SELECT语句,就选择select标签。INSERT、UPDATE、DELETE同理 -->
<!-- id属性:对应dao接口类的方法名 -->
<!-- parameterType:对应dao接口类的参数类型,无参数可省略此属性 -->
<!-- resultType:对应dao接口类的返回结果类型,无返回结果可省略此属性 -->
<select id="getPartInfoByID" parameterType="int" resultType="com.mybatis.entity.PartInfo">
SELECT * FROM tbInfoPart WHERE ID=#{id}
</select>
</mapper>
7)调整mybatis.xml,在</configuration>之前添加如下代码
<mappers>
<!-- 注册PartMapper.xml文件 -->
<mapper resource="com/mybatis/dao/mapper/PartMapper.xml"/>
</mappers>
5. 测试运行
package com.mybatis; import java.io.InputStream;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.mybatis.entity.PartInfo; public class TestMain {
public static void main(String[] args) {
InputStream iStream = TestMain.class.getClassLoader().
getResourceAsStream("mybatis.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(iStream);
SqlSession session = sessionFactory.openSession();
String statement = "com.mybatis.dao.PartDao.getPartInfoByID";
PartInfo partInfo = session.selectOne(statement, 1);
session.close(); System.out.println("商品:["+partInfo.getPartCode()+"] "+partInfo.getPartName()+
" ,售价:"+partInfo.getSalePrice()+"元/"+partInfo.getUnit());
}
}
输出结果:
商品:[-] TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视 ,售价:.9元/台
可以看到,数据库中的记录已经成功查询到了。
6. 目录结构接源码
源码下载:点此下载源码
最新文章
- CSS3多列
- Linux之脚本安装软件
- 让ZenCoding提升编码速度
- Java笔记(二十四)&hellip;&hellip;集合工具类Collections&;Arrays
- 细说webpack之流程篇
- SherlockactionBar中手动调用onCreateOptionsMenu的办法
- mysql数据库主从搭建
- SPOJ 705 New Distinct Substrings
- daterangepicker 使用方法以及各种小bug修复
- LNMP架构部署
- 某pdf转word v6.3.0.2算法分析
- 为什么alertView弹出后button会消失的问题
- 用于ViEmu的重置为试用状态的Python脚本
- 本地数据访问时出现跨域问题Cross origin requests are only supported for protocol schemes: ……
- 使用urllib2+re爬取web网站
- 《移山之道》Reading Task
- cobbler配置解析
- 02-25 类成员的访问权限--internal
- Ajax02 什么是json、json语法、json的使用、利用jQuery实现ajax
- idea存留