前言
记录学习历程
学习SSM框架结合时发现电脑上的数据库是sqlserver
重新学了一下MyBatis连接sqlserver
步骤
(1)创建一个普通的Java项目
导入MyBatis包和jdbc驱动
(2)创建属性文件,将连接数据库的四个参数放入,其中url中12345是我的数据库的tcp/ip端口,database是我的数据库名,username、password登录数据库账号
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1:12345;Database=LearnMyBatis
username=jsp
password=jsp
创建配置数据库文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-////DTD Config 3.0//EN"
"/dtd/">
<configuration>
<!-- 引入属性文件 -->
<properties resource=""/>
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理,事务控制由mybatis管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池,配置数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<!-- 配置映射资源文件 -->
<mappers>
<mapper resource="com/mapper/userMapper"/>
</mappers>
</configuration>
将数据连接单独配置在中,只需要在中加载的属性值,在中就不需要对数据库连接参数进行硬编码。数据库连接参数只配置在中,方便对参数进行统一管理
(3)创建实体类Users
注意:别创建user,user 是 关键字,如果用user作为表名使用时,sql语句应该这么写,select * from [user], 用中括号括起来。
package com.entity;
public class Users {
private int id;
private String name;
private String password;
public Users(){}
public Users(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [token operator">+ id + ", name=" + name + ", password=" + password + "]";
}
}
(4)配置文件,对数据库操作
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-////DTD Mapper 3.0//EN"
"/dtd/">
<mapper namespace="">
<!-- 查询全部用户 -->
<select id="queryUsers" resultType="">
select * from users
</select>
<!-- 按照ID查询 -->
<select id="queryUsersId" parameterType="int" resultType="">
select * from users where id=#{id}
</select>
<!-- 删除用户 -->
<delete id="deleteUsers" parameterType="">
delete users where id=#{id}
</delete>
</mapper>
(5)创建MyBatisutil工具类,放连接数据库语句
package com.util;
import java.io.IOException;
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;
/**
* 工具类
*
*/
public class MyBatisutil {
//创建SqlSessionFactory对象
private static SqlSessionFactory factory;
static{
try {
//获取配置文件资源
InputStream inputStream=Resources.getResourceAsStream("");
//获取SqlSessionFactory对象
factory=new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取SqlSession对象
*/
public static SqlSession getSqlSession(){
return factory.openSession();
}
/**
* 关闭SqlSession对象
*/
public static void closeSqlSession(SqlSession session){
if(null!=session){
//关闭Sqlsession对象
session.close();
}
session=null;
}
}
(6)创建测试类
package com.test;
import java.util.List;
import com.entity.Users;
import com.util.MyBatisutil;
import org.apache.ibatis.session.SqlSession;
public class test {
public static void main(String[] args) {
// 获取SqlSession对象
SqlSession session = MyBatisutil.getSqlSession();
// 查询全部对象
List<Users> list = session.selectList("");
System.out.println(list.size());
//查询第一个对象
System.out.println(list.get(0));
//关闭SqlSession对象
MyBatisutil.closeSqlSession(session);
}
}
(7)项目结构,结果
数据库表:
结构:
测试结果: