MyBatis连接sqlserver

时间:2024-11-08 12:10:09

前言

记录学习历程
学习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)项目结构,结果
数据库表:
在这里插入图片描述
结构:
在这里插入图片描述
测试结果:
在这里插入图片描述