这几天,在尝试mybatis框架链接到数据库。
上网找了课程,都是mysql+mybatis。
改别人的代码,配置里的内容要写正确是很重要的,我用了二天都想不明白哪里写错了。
报错写:连接失败。
翻开配置conf.xml来看,那句话
“
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
”(这是写正确的)
我少了driver,1521:后面写的mybase,复制别人的代码,没看清楚别人的数据库名字和自己的数据库名字是不一样的。
改完后,启动test,终于能启动了。
二话不说,直接贴上我的代码,希望你们也能链接成功。
先上整个项目的树:

第一步,在plsql,创建一张表
create table users(
id number primary key,
name varchar2(10),
age number
)
--插入数据
insert into users values(1,'名字1',20);
insert into users values(2,'名字2',20);
insert into users values(3,'名字3',20);
第二步,导入两个包到项目中,如图:

ojdbc14.jar是数据库jar,mybatis-3.1.1.jar是mybatis的jar(网上下载就可以了),只需这两个包就可以了。
第三步,users表的实体类:
package com.entity; public class User { private int id; private String name; private int age; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return "User [id=" + this.id + ", name=" + this.name + ", age=" + this.age + "]"; } }
接着就是它的映射文件:(注意select语句末尾不要加“;”)
<?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"> <!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀) --> <mapper namespace="com.mapping.userMapper"> <select id="getUser" parameterType="int" resultType="com.entity.User"> select * from users where id=1 </select> </mapper>
测试代码:
package com.test; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import java.util.List; import com.entity.User; import org.apache.ibatis.builder.xml.dynamic.ForEachSqlNode; 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 test { public static void main(String[] args) throws IOException { String resource = "conf.xml"; InputStream is = test.class.getClassLoader().getResourceAsStream(resource); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession session = sessionFactory.openSession(); String statement = "com.mapping.userMapper.getUser";// User user = session.selectOne(statement); System.out.println(user.toString()); } }
浙公网安备 33010602011771号