【超详细自用】Java-mybatis-oracle配置

环境

  • JDK1.7
  • Oracle数据库
  • ecplise

核心文件配置和两个jar包

链接:https://pan.baidu.com/s/1dswl90NYNq6QWVaYfUznIA
提取码:ry1d
在这里插入图片描述

配置

  1. 创建一个Java Project
    file - new - java project
  2. 点击 window --> Perspective->搜索xml–>选择xml catalog
    在这里插入图片描述
  3. 点击add,下图圈1下面两个是我已经添加过了在这里插入图片描述
  4. 打开mybatis-config.xml文件,复制图上代码,然后将这个代码粘贴在
    在这里插入图片描述
  5. 将复制的代码粘贴在1处,然后点击file system 选择mybatis-3-config.did 文件,然后点击ok(下图中为了显示出这个文件,把路径删减了,选择文件所在的地方就可以)
    在这里插入图片描述
  6. 在重复上述步骤,点击add ,复制StudentMapper.xml文中的代码粘贴在Key处,点击file system选择mybatis-3-mapper.did,点击ok。
    在这里插入图片描述
    在这里插入图片描述
    7.右击Java project项目名,new一个Folder起名为lib,然后将mybatis-3.2.2.jar和ojbc7.jar复制到lib里面,选中这两个jar包右击build path,结构如下
    在这里插入图片描述
  7. 在选中src右击new一个package起名为config,在config下new一个file起名为db.properties
db.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
db.username=scott  //改成自己的数据库用户名
db.password=tiger  //密码

在这里插入图片描述8. 在config下面创建一个xml文件。(右击->other->搜索xml->xml file)起名为mybatis.xml,点击next
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 同理创建sqlmapper.xml文件
    在这里插入图片描述
  2. 打开oracle数据库创建表,然后输入几个数据
create table user1(
       id number(4) primary key,
       uname varchar2(10),
       upwd varchar2(20),
       type number(2)
      )
   insert into user1 values (1,'admin','123',1)
   
  1. src下创建一个package 名字为com.user.entity,然后new一个class
package com.user.entity;

public class User {
	  private int id;
	  private String uname;
	  private String upwd;
	  private int type;
 
  //创建无参数的额构造器
  public User() {
		super();
		// TODO Auto-generated constructor stub
	}
  //创建有参数的构造器
		public User(int id, String uname, String upwd, int type) {
			super();
			this.id = id;
			this.uname = uname;
			this.upwd = upwd;
			this.type = type;
		}
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public String getUname() {
			return uname;
		}
		public void setUname(String uname) {
			this.uname = uname;
		}
		public String getUpwd() {
			return upwd;
		}
		public void setUpwd(String upwd) {
			this.upwd = upwd;
		}
		public int getType() {
			return type;
		}
		public void setType(int type) {
			this.type = type;
		}
	}

  1. mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>
<!-- 加载db文件 -->
<properties resource="config/db.properties"></properties>
<!-- 配置数据库 -->
<environments default="dev">
   <environment id="dev">
      <!-- 配置事务管理 -->
      <transactionManager type="JDBC"></transactionManager>
      <!-- 配置数据源 -->
      <dataSource type="POOLED">
         <!-- 加载数据库的驱动 -->
         <property name="driver" value="${db.driver}"/>
         <!-- 加载数据库的连接 -->
         <property name="url" value="${db.url}"/>
         <!-- 加载数据库的用户名 -->
         <property name="username" value="${db.username}"/>
         <!-- 加载数据库的密码 -->
         <property name="password" value="${db.password}"/>
      </dataSource>
   </environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
   <mapper resource="config/sqlmapper.xml"></mapper>
</mappers>
</configuration>

  1. sqlmapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper namespace="user">
    <!-- 查询用户信息 -->
    <select id="findUser" resultType="com.user.entity.User">
       select * from user1
    </select>
</mapper>
  1. 创建package名字为com.user.test,new class 名 Test,测试一下是否连接上了
package com.user.test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.user.entity.User;
public class Test {

	public static void main(String[] args) {
		//读取配置mybatis.xml配置文件
				try {
					Reader read=Resources.getResourceAsReader("config/mybatis.xml");
					//通过配置文件configration构造SqlSessionFactory对象
					SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(read);
					//通过SqlSessionFactory构造SqlSession的对象
					SqlSession session=sessionFactory.openSession();
					List<User> list=session.selectList("user.findUser");
					for(User user:list){
						System.out.println(user.getUname());
						}
					} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}


}
					

运行一下,显示成功了。
在这里插入图片描述

出现的错误

出现下面两个错误大概率是因为ojdbc驱动与jdk版本不匹配,原来我用的是ojdbc6然后一直是图一的错误,后来改了ojdbc8出现了图二的错误,用了ojdbc7以后运行正确了。

在这里插入图片描述
在这里插入图片描述


版权声明:本文为xuexiaiwo11原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。