为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 网络编程 正文

Mybatis基础服务层数据层接口和对应Mapper.xml的关系

三叶资源网 2022-09-04 20:18:50 网络编程 314 ℃ 0 评论

1.测试类,类中调用服务层UserServiceImpl

package com.lic.ibatis.test;


import com.lic.ibatis.entity.User;

import com.lic.ibatis.service.UserServiceImpl;


public class MybatisTest {

public static void main(String[] args) {

UserServiceImpl userService = new UserServiceImpl();

User user = userService.query(1);

System.out.println(user.toString());

}

}

2.服务层Service接口及实现类,类中调用UserMapper.java接口

//service接口

package com.lic.ibatis.service;


import com.lic.ibatis.entity.User;


public interface UserService {

User query(int id);

}


//service实现类

package com.lic.ibatis.service;


import com.lic.ibatis.dao.UserMapper;

import com.lic.ibatis.dao.UserMapperImpl;

import com.lic.ibatis.entity.User;


public class UserServiceImpl implements UserService{


UserMapper userMapper=new UserMapperImpl();


@Override

public User query(int id) {

return userMapper.getUserById(id);

}

}

3.mapper接口类 UserMapper.java  

mybatis根据UserMapper.xml中配置的信息创建一个实现了UserMaper.java接口的代理类

package com.lic.ibatis.dao;


import com.lic.ibatis.entity.User;


public interface UserMapper {


//根据用户ID获取用户信息

User getUserById(int id);

}

5.UserMapper.xml信息如下:

<?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.lic.ibatis.dao.UserMapper">

<select id="getUserById" parameterType="int" resultType="com.lic.ibatis.entity.User">

select * from user where id = #{id}

</select>

</mapper>

在UserMapper.xml中namespace等于UserMapper.java接口地址(即UserMapper的全限定名);

UserMapper.java接口中的方法名和UserMapper.xml中的statement(<select>,<update>...标签)的id属性值一致;

UserMapper.java接口中的方法输入值参数和UserMapper.xml中statement的parameterType指定的类型一致。

UserMapper.java接口中的方法的返回值类型和UserMapper.xml中statement的resultType指定的类型一致。

4.mapper实现类UserMapperImpl.java 

package com.lic.ibatis.dao;


import com.lic.ibatis.entity.User;


import java.sql.*;

import java.util.Date;


public class UserMapperImpl implements UserMapper {

@Override

public User getUserById(int id) {

Connection connection=null;

PreparedStatement preparedStatement=null;

ResultSet resultSet=null;

try {

//注册驱动

Class.forName("com.mysql.jdbc.Driver");

//获取数据连接

connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mybatis" , "root" , "m123" ) ;

//sql语句

String sql= "select * from user where id = ?";

//加载预执行对象

preparedStatement = connection.prepareStatement(sql);

//添加参数

preparedStatement.setInt(1,id);

//执行查询, 获取结果集

resultSet = preparedStatement.executeQuery();

User user=null;

//解析结果集,封装结果

while(resultSet.next()){

int userId = resultSet.getInt("id");

String username = resultSet.getString("username") ;

Date birthday = resultSet.getDate("birthday");

String sex = resultSet.getString("sex");

String address = resultSet.getString("address");

user = new User(String.valueOf(userId), username, String.valueOf(birthday), sex, address);

}

return user;

} catch (Exception e) {

e.printStackTrace();

}finally

//关闭相关资源

try {

if (resultSet !=null){

resultSet.close();

}

if (preparedStatement !=null){

preparedStatement.close();

}

if (connection !=null){

connection.close();

}


} catch (SQLException e) {

e.printStackTrace();

}

}

return null;

}

}

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
龙珠直播采集HP-Socket2鱼刺通用架构B站仓库管理屏幕录像sqlite之数据库LOL空格倒计时知乎引流邮件大站协议创建快捷方式数据分页类高级表格利用alpha属性绘制图形易语言CEF3模块QQ群提取图片格式转换器无限视距
最新评论