SSM框架—— MyBatis

MyBatis取代JDBC、dbutils等原始方法操作数据库

  • 搭建一个MyBatis项目的流程:

①导包:

 

   ②创建主配置文件步骤:在项目下src目录 → New → File → sqlMapConfig.xml

​​​​

找到核心配置文件内容 复制粘贴到sqlMapConfig.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">
        <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
        <property name="url" value="jdbc:sqlserver://127.0.0.1:1433;DatabaseName =WJYLTeachingWebsite"/>
        <property name="username" value="sa"/>
        <property name="password" value="sa"/>
      </dataSource>
    </environment>
  </environments>
  
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

③创建映射文件步骤:src → New → Folder → mapper(所有mapper文件全部存入该文件夹)

→ 选中mapper文件夹→ New → File→ 根据数据库表名创建mapper名(例如:StudentMapper.xml)

如何编辑创建好的StudentMapper.xml文件: 依旧是刚才的网址 找到下图所示段落 复制粘贴 再自行修改

选中StudentMapper.xml →右键 Copy.... 后

回到主配置文件:

粘贴并替换到下图所示内容处:(因映射文件与主配置文件在同一目录,于是只保留以下内容)

如果检验是否配置正确:按住CRTL 鼠标滑至 下图所示位置 如果出现一条横线点进去能到映射文件中,则表示配置正确

编写一个入门程序:通过stuNum 查询学生

新建测试类:

@Test
	//入门程序:通过stuNum 查询学生
	public void Test() throws IOException {
		String resource = "sqlMapConfig.xml";  //路径
		
		//读取配置文件(用输入流来读取)
		InputStream in = Resources.getResourceAsStream(resource );
		
		//sqlSessionFactoryBuilder
		SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
		
		//创建sqlSessionFactory
		SqlSessionFactory ssf = ssfb.build(in);
		
		//生产一个sqlSession
		SqlSession ss = ssf.openSession();
		
		//操作数据库
		//参数1:sql语句 2:sql语句中的参数
		Student stu = ss.selectOne("StudentMapper.selectStuByNum", "2016002");
		System.out.println(stu);
	}

注意:占位符?在配置文件中用#{变量名}来代替表示

运行结果:

注意:需要先在Student类中重写toString()方法

如果是做增删改操作

应注意:要提交事务

即 :

         //操作数据库
		//参数1:sql语句 2:sql语句中的参数
		ss.insert("StudentMapper.insertStu", student);
		ss.commmit();  

猜你喜欢

转载自blog.csdn.net/weixin_42153410/article/details/90751920