作者:书友34624989 | 来源:互联网 | 2023-10-12 16:43
连接数据库需要程序,连接字符串,查询语句主程序-》读取连接字符串-》读取查询语句-》把查询到的值赋值给映射对象-》打印对象属性javaproject的好处,不用做那么多配置,想到什么就去
连接数据库需要
程序,连接字符串,查询语句
主程序-》读取连接字符串-》读取查询语句-》把查询到的值赋值给映射对象-》打印对象属性
java project的好处,不用做那么多配置,想到什么就去干,用来学习比较快
入口文件 HelloWorld.java
package HelloWorld;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import HelloWorld.User;
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 HelloWorld {
public static void main(String[] args) throws IOException {
// mybatis的配置文件
String resource = "conf.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
InputStream is = HelloWorld.class .getClassLoader().getResourceAsStream(resource);
// 构建sqlSession的工厂
SqlSessionFactory sessiOnFactory= new SqlSessionFactoryBuilder().build(is);
// 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
// Reader reader = Resources.getResourceAsReader(resource);
// 构建sqlSession的工厂
// SqlSessionFactory sessiOnFactory= new SqlSessionFactoryBuilder().build(reader);
// 创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的标识字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "HelloWorld.userMapper.getUser";// 映射sql的标识字符串
// 执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
映射文件 User.java
package HelloWorld;
/**
* @author gacl
* users表所对应的实体类
*/
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;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
查询语句 userMapper.xml
resultType="HelloWorld.User">
select * from users where id=#{id}
连接字符串 conf.xml
目录结构
sql语句(数据库一定要和连接字符串照应)
-- phpMyAdmin SQL Dump
-- version phpStudy 2014
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2015 年 11 月 28 日 18:57
-- 服务器版本: 5.5.38
-- PHP 版本: 5.3.28
SET SQL_MODE= "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+ 00 :00 ";
/* !40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */ ;
/* !40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */ ;
/* !40101 SET @OLD_COLLATION_COnNECTION=@@COLLATION_CONNECTION */ ;
/* !40101 SET NAMES utf8 */ ;
--
-- 数据库: `mybatis`
--
-- --------------------------------------------------------
--
-- 表的结构 `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int (11 ) NOT NULL AUTO_INCREMENT,
`NAME` varchar (20 ) DEFAULT NULL ,
`age` int (11 ) DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE = MyISAM DEFAULT CHARSET= gbk AUTO_INCREMENT= 3 ;
--
-- 转存表中的数据 `users`
--
INSERT INTO `users` (`id`, `NAME`, `age`) VALUES
( 1 , ' 孤傲苍狼 ' , 27 ),
( 2 , ' 白虎神皇 ' , 27 );
/* !40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */ ;
/* !40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */ ;
/* !40101 SET COLLATION_COnNECTION=@OLD_COLLATION_CONNECTION */ ;
效果
这是一个从helloworld演变过来的程序,主要是抄的网上的代码,能更好的思考运行原理和机制