MVC中,Controller如何从数据库调用单个数据给一个变量?
发布网友
发布时间:2022-04-10 19:59
我来回答
共1个回答
热心网友
时间:2022-04-10 21:28
package com.kiwwor.qq.beans;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 数据库操作的JavaBean类,用于对数据库的查询与更新的实现;
* 该类默认的连接的数据库为本地数据库,连接数据库为"qq";
* 该类主要为用户一系列的数据操作提供底层服务。
* @author kiwwor
* @see UserBean
*/
public class Access {
//驱动程序类
private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//连接数据库url
private String connectionUrl="jdbc:sqlserver://localhost:1433;DatabaseName=qq";
//用户名
private String user = "qq";
//用户密码
private String password = "123258741";
//数据库连接对象
private Connection connection = null;
//数据库对象
private Statement statement = null;
//数据集对象
private ResultSet resultSet = null;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getConnectionUrl() {
return connectionUrl;
}
public void setConnectionUrl(String connectionUrl) {
this.connectionUrl = connectionUrl;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Connection getConnection() {
return connection;
}
public void setConnection(Connection connection) {
this.connection = connection;
}
public Statement getStatement() {
return statement;
}
public void setStatement(Statement statement) {
this.statement = statement;
}
public ResultSet getResultSet() {
return resultSet;
}
public void setResultSet(ResultSet resultSet) {
this.resultSet = resultSet;
}
/**
* 获取一个连接对象,默认连接对象本地数据库qq。
* @return 连接是否成功
*/
public boolean createConnection() {
boolean b = false;
try {
Class.forName(driver);
connection = DriverManager.getConnection(connectionUrl, user, password);
b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 更新数据库
* @param sql 更新的sql语句
* @return 更新是否成功
*/
public boolean update(String sql) {
boolean b =false;
try {
statement = connection.createStatement();
statement.execute(sql);
b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 执行查询,将查询的结果集给resultmentSet。
* @param sql 查询的sql语句
*/
public void query(String sql) {
try {
statement = connection.createStatement();
resultSet = statement.executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 检测结果集是否为空
* @return true为存在记录
*/
public boolean next() {
boolean b = false;
try {
if (resultSet.next()) b = true;
} catch (Exception e) {
e.printStackTrace();
}
return b;
}
/**
* 获得结果集中当前行columnLabel的记录
* @param columnLabel
* @return 值记录
*/
public String getValue(String columnLabel) {
String value = null;
try {
if (resultSet != null) value = resultSet.getString(columnLabel);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}
/**
* 关闭连接对象
*/
public void closeConnection() {
try {
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据库对象
*/
public void closeStatement() {
try {
if (statement != null) statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭结果集
*/
public void closeResultSet() {
try {
if (resultSet != null) resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭数据连接对象,数据库对象和数据结果集对象。
*/
public void closeAll() {
closeResultSet();
closeStatement();
closeConnection();
}
/**
* 测试该类函数。
* @param args
*/
public static void main(String[] args) {
Access db = new Access();
if (db.createConnection()) {
System.out.println("测试数据库连接成功.");
String sql = "select id from [user]";
db.query(sql);
int i = 1;
while (db.next()) {
String s = db.getValue("id");
System.out.println("查询用户" + i + ": " + s);
i++;
}
db.closeResultSet();
db.closeStatement();
db.closeConnection();
}
}
}
第二个:
package com.kiwwor.qq.beans;
/**
* 这是一个对用户的数据查询和更新的JavaBean类;
* 该类提供了对用户的密码认证,用户注册等方法。
* @author kiwwor
* @see Access
*/
public class UserBean {
/**
* 对用户的登录认证
* @param id 用户名
* @param password 密码
* @return 认证结果
*/
public boolean isValid(String id, String password) {
boolean b = false;
Access db =new Access();
if (db.createConnection()) {
String sql = "select * from [user] where id=" + id +"and password=" + password;
db.query(sql);
if (db.next()) {
b = true;
}
}
db.closeAll();
return b;
}
/**
* 用来查询该用户在服务器中是否存在
* @param id 用户名
* @return 确认是否存在
*/
public boolean isExit(String id) {
boolean b = false;
Access db =new Access();
if (db.createConnection()) {
String sql = "select * from [user] where id=" + id;
db.query(sql);
if (db.next()) {
b = true;
}
}
db.closeAll();
return b;
}
/**
* 添加用户,该方法必须在<code>isExit(String id)</code>确认的前提下使用,否则可能出现异常
* @param id 新增用户名
* @param password 密码
* @return 确认添加是否成功
*/
public boolean add(String id, String password) {
boolean b = false;
Access db =new Access();
if (db.createConnection()) {
String sql = "insert into [user] (id, password) values (" + id + "," + password + ")";
b = db.update(sql);
}
db.closeAll();
return b;
}
}