作者:书友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
连接字符串 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演变过来的程序,主要是抄的网上的代码,能更好的思考运行原理和机制