1.java resultsetԴ??
2.Java干货 | javaresultset.getstring()方法:获取string类型的数据
3.MyBatis源码解析之基础模块—TypeHandler
java resultsetԴ??
实体类package dao;public class Person {
private Integer personid;
private String personname;
private String degree;
private String birth;
private Integer sal;
public Person() {
}
public Person(Integer personid, String personname, String degree, String birth, Integer sal) {
super();
this.personid = personid;
this.personname = personname;
this.degree = degree;
this.birth = birth;
this.sal = sal;
}
public Integer getPersonid() {
return personid;
}
public void setPersonid(Integer personid) {
this.personid = personid;
}
public String getPersonname() {
return personname;
}
public void setPersonname(String personname) {
this.personname = personname;
}
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public Integer getSal() {
return sal;
}
public void setSal(Integer sal) {
this.sal = sal;
}
@Override
public String toString() {
return "Person [personid=" + personid + ", personname=" + personname + ", degree=" + degree + ", birth=" + birth
+ ", sal=" + sal + "]";
}
}
2. dao
package dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class PersonDao {
static Connection conn = null;
static {
// 修改成自己的数据库
String url = "jdbc:mysql://.0.0.1:/test?serverTimezone=UTC&useSSL=false";
String user = "root";
String password = "root";
try {
// 记得导入 驱动包
// 驱动名称:com.mysql.jdbc.Driver (指的是驱动版本:5.7版本的)
// com.mysql.cj.jdbc.Driver (8.0版本)
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
conn = null;
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
conn = null;
e.printStackTrace();
}
}
/
*** 查找所有的数据
* @return List集合
* @throws SQLException
*/
public List<Person> findAll() throws SQLException{
List<Person> list = null;
if(conn != null) {
list = new ArrayList<>();
String sql = "select * from person";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Person temp = new Person();
temp.setPersonid(rs.getInt("personid"));
temp.setPersonname(rs.getString("personname"));
temp.setDegree(rs.getString("degree"));
temp.setBirth(rs.getString("birth"));
temp.setSal(rs.getInt("sal"));
list.add(temp);
}
}
return list;
}
public Person findById(int personId) throws SQLException {
Person temp = null;
if(conn != null){
String sql = "select * from person where personid =?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, personId);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
temp = new Person();
temp.setPersonid(rs.getInt("personid"));
temp.setPersonname(rs.getString("personname"));
temp.setDegree(rs.getString("degree"));
temp.setBirth(rs.getString("birth"));
temp.setSal(rs.getInt("sal"));
}
}
return temp;
}
/
*** 通过id来删除一条记录
* @param personId
* @throws SQLException
*/
public void deleteById(int personId) throws SQLException {
if(conn != null) {
String sql = "delete from person where personid = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, personId);
ps.execute();
}else {
System.out.println("无法建立连接");
}
}
// 其他的可以自己试试来写!模板都是一样的,除了sql语句不同
}
Java干货 | javaresultset.getstring()方法:获取string类型的数据
Java中的ResultSet接口提供了一系列用于检索数据库中存储的数据的方法。其中,getString()方法用于获取ResultSet对象中当前行指定列的值,并将其作为String类型返回。grpc源码优化
1. 案例
本代码案例演示了如何使用getString()方法从ResultSet对象中获取String类型的数据。首先,使用DriverManager类获取连接对象,创建Statement对象,执行SQL查询,并从ResultSet对象中检索数据。
在上述代码中,通过DriverManager类获取连接对象,使用createStatement()方法创建Statement对象,然后执行查询语句,遍历ResultSet对象,使用getInt()和getString()方法获取每行的值。
使用getString()方法获取name列的值,将其作为String类型返回。若列数据类型非String,orb 源码该方法会自动转换为String。使用该方法时,确保ResultSet对象已移动至正确行,否则返回null。
2. 项目案例
结合项目案例,演示如何使用getString()方法从MySQL数据库中检索数据。假设有一个名为employees的表,包含id、name、email和phone列。告警源码我们想检索所有员工的姓名和电话,并在Web页面上显示。
创建EmployeeDao类与数据库交互。定义SELECT_EMPLOYEES常量,包含查询语句,从employees表中检索name和phone列的值。
定义getEmployees()方法,使用DriverManager类获取连接对象,创建Statement对象,执行查询语句,渐变源码遍历ResultSet对象,使用getString()方法获取每行的name和phone列的值,创建Employee对象,并将其添加到List对象中。
在Web应用程序中,使用EmployeeDao类的getEmployees()方法获取员工列表,并在页面上显示。
3. 注意事项
使用getString()方法时需要注意以下事项:返回String类型数据,非String类型自动转换为String;若指定列不存在,抛出SQLException异常;若试图读取已关闭的phantom源码ResultSet对象数据,抛出SQLException异常;确保ResultSet对象已移动至正确行,否则返回null。
注意以上事项,确保正确获取ResultSet对象数据。
总之,getString()方法是Java中获取ResultSet对象String类型数据的常用方法。通过代码示例和项目案例,了解该方法的使用和注意事项。
4. 结论
本文解释了Java中的getString()方法的使用,包括代码示例和项目案例。通过学习本文,您可以了解如何使用该方法从ResultSet对象中获取String类型的数据,并了解使用该方法时需要注意的事项。希望本文对大家有所帮助!
MyBatis源码解析之基础模块—TypeHandler
MyBatis源码解析之基础模块—TypeHandler
在MyBatis的上一章节中,我们探讨了Plugin模块的拦截器配置和自定义。接下来,我们将深入理解数据库与Java对象之间转换的核心机制,即Type模块的源码。 Type模块位于org.apache.ibatis.type,其架构设计包含IntegerTypeHandler和UnknownTypeHandler等实现类,用于处理不同类型的转换。JdbcType枚举定义了常见的数据库数据类型,MappedTypes和MappedJdbcTypes注解用于标注Java类型和数据库类型的映射。 对于类型转换,TypeHandler是核心接口,它定义了处理方法。BaseTypeHandler是抽象基类,采用模板方法模式,提供了通用逻辑,而具体实现由子类如IntegerTypeHandler完成。对于没有明确泛型类型的转换,UnknownTypeHandler则负责处理。 TypeAliasRegister负责注册Java常用数据类型的别名,而TypeHandlerRegister是类型转换器的注册中心,MyBatis在初始化时已经自动注册了常用TypeHandler。ResultSetWrapper则负责包装ResultSet,提供类型转换器的获取,最终由ResultSetHandler处理实际的数据处理。 总结来说,Type模块在MyBatis中负责数据的类型转换,通过TypeHandler和相关的注册机制,确保了数据库操作与Java对象之间的无缝对接。在实际开发中,无需过多配置,MyBatis就能自动完成类型转换,使得开发更为便捷。