创建表:
create table user
(
id int(11) not null auto_increment,
username varchar(15) not null,
age int(11) not null,
primary key(id),
)engine=innodb default charset=utf8 auto_increment=1;
工程图:
mybatis连接MySQL数据库配置文件 configuration.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>
<typeAliases>
<!--给实体类起一个别名 user -->
<typeAlias type="com.lcb.domain.User" alias="User" />
</typeAliases>
<!--数据源配置 这块用 mysql数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="jdbc" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<mappers>
<!--user.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="com/lcb/mybatis/usermapper.xml" />
</mappers>
</configuration>
创建实体类 User.java
public class User {
private int id;
private String username;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
创建数据接口 UserDao.java
public interface UserDao {
public int insert(User user);
public int update(User user);
public int delete(User user);
public int countAll();
public ArrayList<User> findAll();
public ArrayList<User> findAllByIds(ArrayList<Integer> ids);
public User findById(int id);
public User findById1(int id);
}
配置数据接口配置文件 usermapper.xml <id命名就是数据接口中的方法名>
<?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="com.lcb.dao.UserDao">
<select id="insert" parameterType="User" resultType="int">
insert into student(username,age)values(#{username},#{age})
</select>
<select id="update" parameterType="User" resultType="int">
update student set username=#{username},age=#{age} where id=#{id}
</select>
<select id="delete" parameterType="int" resultType="int">
delete from student where id=#{id}
</select>
<select id="countAll" resultType="int">
select count(*) from student
</select>
<select id="findAll" resultType="User">
select * from student
</select>
<select id="findAllByIds" resultType="User">
select * from student where id in
<!-- 参数是list集合-->
<foreach collection="list" item="ids" open="(" separator="," close=")">
#{ids}
</foreach>
</select>
<select id="findById" parameterType="int" resultType="User">
select * from student where id=#{id}
</select>
</mapper>
测试 MyBatisTest.java
public class MyBatisTest {
private static SqlSessionFactoryBuilder sqlSessionFactoryBuilder = null;
private static SqlSessionFactory sqlSessionFactory = null;
private static Reader reader;
static{
try{
reader = Resources.getResourceAsReader("configuration.xml");
sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
sqlSessionFactory = sqlSessionFactoryBuilder.build(reader);
}catch(Exception e){
e.printStackTrace();
}
}
public static SqlSessionFactory getSession(){
return sqlSessionFactory;
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try {
//获取数据接口UserDao
UserDao userDao = session.getMapper(UserDao.class);
User user1 = new User();
user1.setUsername("aaa");
user1.setAge(28);
//执行UserDao的insert方法
userDao.insert(user1);
//执行UserDao的countAll方法
System.out.println(userDao.countAll()); //输出1
//执行UserDao的findById方法
User user = (User) userDao.findById(1);
System.out.println(user.getUsername()); //输出aaa
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
//执行UserDao的findAllByIds方法
System.out.println(userDao.findAllByIds(list).size()); //输出1
}catch(Exception e){
} finally {
session.close();
}
}
}
相关推荐
6. **项目结构**:在 "mybatis-plus-dynamic" 这个压缩包中,可能包含了以下文件夹和文件:src/main/java(存放 Java 代码),src/main/resources(配置文件和资源文件),pom.xml(Maven 配置文件),以及可能的...
#### 五、MyBatis入门示例 以下是一个简单的使用MyBatis查询用户信息的例子: 1. **定义User实体类**:包含用户的属性,如ID、用户名等。 2. **编写SQL映射文件**:定义查询用户信息的SQL语句。 3. **创建Mapper接口...
在 MyBatis 中,SQL 语句通常被映射到配置文件中,这样可以将 SQL 逻辑与 Java 代码分离,提高可维护性。每个映射的 SQL 语句都有一个唯一的命名空间,这有助于避免命名冲突,并且可以使同一个应用程序中的多个映射...
通过读取配置文件(XML或Java注解形式),它能够构建出`SqlSessionFactory`,这是MyBatis的主要入口点,用于创建`SqlSession`对象。 `SqlSession`则相当于JDBC中的Connection,它提供了执行SQL和获取结果的方法。你...
在本入门示例项目中,我们将深入理解MyBatis的基本使用方法,包括数据库交互、映射文件配置、配置文件加载、Junit测试以及日志记录。 1. 数据库SQL语句:MyBatis的核心功能之一就是将Java对象与数据库中的SQL语句...
- 安装配置:下载MyBatis框架,配置数据库驱动和MyBatis的全局配置文件。 - 创建第一个项目:搭建一个简单的MyBatis项目,编写第一个Mapper接口和对应的SQL映射文件。 - 动态SQL实践:通过实例,学习如何使用...
1. **搭建开发环境**:引入Mybatis相关jar包,配置mybatis-config.xml文件(定义Mybatis的运行环境),以及DAO接口对应的mapper.xml文件和日志配置文件log4j.properties。 2. **初始化配置**:在mybatis-config.xml...
通过简单的 XML 配置文件或 Java 注解,MyBatis 能够将接口和 Java 的 POJOs(Plain Old Java Objects)映射到数据库中的记录。 #### 二、文档贡献与改进 文档的质量对于任何开源项目都至关重要。无论是文档缺失...
XML配置文件通常用来定义数据源、环境配置、映射文件等。通过读取这个配置文件,可以创建SqlSessionFactory实例。例如,`mybatis-config.xml`文件会包含数据库连接信息、环境配置、映射文件的位置等。 ### 不使用...
- **文件结构**:XML配置文件包含了MyBatis系统的核心设置,主要包括获取数据库连接实例的数据源和决定事务范围与控制的事务管理器。 - **关键配置示例**: - **基本结构**: ```xml ...
MyBatis 的全局配置文件主要用于配置数据源、事务管理、缓存策略等。该配置文件通常命名为 mybatis-config.xml。 ##### 2.6 创建 MyBatis 映射文件 映射文件用于定义 SQL 语句以及结果集和 Java 对象之间的映射...
MyBatis能够通过简单的XML配置文件或注解的方式,将普通的Java对象(POJOs)与数据库中的记录映射起来。MyBatis消除了手动设置参数和检索结果集的工作,大大简化了数据库操作的代码量和复杂性。 在入门部分,文档...
MyBatis 的核心配置文件通常是一个 XML 文件,用来创建 SqlSessionFactory。这个文件中会指定 MyBatis 的运行环境、事务管理器、数据源等配置信息。核心配置文件中也会指定 MappedStatement 的定义,它包含了 SQL ...
2. Configuration.xml 里面 的<mapper resource="com/yihaomen/mybatis/model/User.xml"/>是包含要映射的类的xml配置文件。 3. 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型...
XML配置文件允许灵活地控制MyBatis的行为,包括数据库连接的详细信息、SQL映射、缓存策略等。 ### Mapper XML Files Mapper XML文件包含了具体的SQL语句和映射规则,用于执行CRUD(创建、读取、更新、删除)操作。...
MyBatis 的应用目录结构通常包含 SQL 映射文件、Java 接口和 MyBatis 配置文件,这有助于维护代码的结构清晰和组织有序。 ### 其他 文档最后提到了如何为 MyBatis 的文档提供改进意见,无论是发现文档的疏漏还是 ...
与传统的 JDBC 相比,MyBatis 大大简化了数据访问层的开发工作量,通过 XML 或注解的方式将接口和 Java 的 POJOs 映射到数据库记录上,从而避免了大量的 JDBC 代码编写和手动设置参数、获取结果集等繁琐步骤。...