本文目录一览:
- 1、JSP如何调用.java文件进行对数据库的操作?
- 2、java如何访问和操作数据库?请说详细一点哦!小弟比较笨理解能比较差
- 3、Java中对数据库操作实例
- 4、在Java中如何对数据库中的数据进行操作?
- 5、java数据库,怎么在一个文件中连接数据库,另一个文件中执行数据库操作?
JSP如何调用.java文件进行对数据库的操作?
这个问题问得不准确。
.java文件是死的,如何操作数据库?必须编译成.class可运行文件,在tomcat等网络信息服务下面部署才能正常运行。正常运行后就可以和普通应用一样操作数据库了。
java如何访问和操作数据库?请说详细一点哦!小弟比较笨理解能比较差
// 1. 注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// Mysql 的驱动
// 2. 获取数据库的连接
java.sql.Connection conn = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost/test?useUnicode=truecharacterEncoding=GBK", "root", null);
// 3. 获取表达式
java.sql.Statement stmt = conn.createStatement();
// 执行插入数据的 SQL
stmt.executeUpdate("insert into MyUser(username, password) values('JDBC 中文测试', '密码')");
// 4. 执行 SQL
java.sql.ResultSet rs = stmt.executeQuery("select * from MyUser");
// 5. 显示结果集里面的数据
while(rs.next()) {
System.out.println(rs.getInt(1));
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
System.out.println();
}
// 6. 释放资源
rs.close();
stmt.close();
conn.close();
Java中对数据库操作实例
可以以普通的jdbc连接的使用习惯来使用连接池。 数据库连接池在编写应用服务是经常需要用到的模块,太过频繁的连接数据库对服务性能来讲是一个瓶颈,使用缓冲池技术可以来消除这个瓶颈。我们可以在互联网上找到很多关于数据库连接池的源程序,但是都发现这样一个共同的问题:这些连接池的实现方法都不同程度地增加了与使用者之间的耦合度。很多的连接池都要求用户通过其规定的方法获取数据库的连接,这一点我们可以理解,毕竟目前所有的应用服务器取数据库连接的方式都是这种方式实现的。但是另外一个共同的问题是,它们同时不允许使用者显式的调用Connection.close()方法,而需要用其规定的一个方法来关闭连接。这种做法有两个缺点:第一:改变了用户使用习惯,增加了用户的使用难度。首先我们来看看一个正常的数据库操作过程:int executeSQL(String sql) throws SQLExceptionfinallycatch(Exception e)catch(Exception e)return res;}使用者在用完数据库连接后通常是直接调用连接的方法close来释放数据库资源,如果用我们前面提到的连接池的实现方法,那语句conn.close()将被某些特定的语句所替代。第二:使连接池无法对之中的所有连接进行独占控制。由于连接池不允许用户直接调用连接的close方法,一旦使用者在使用的过程中由于习惯问题直接关闭了数据库连接,那么连接池将无法正常维护所有连接的状态,考虑连接池和应用由不同开发人员实现时这种问题更容易出现。综合上面提到的两个问题,我们来讨论一下如何解决这两个要命的问题。首先我们先设身处地的考虑一下用户是想怎么样来使用这个数据库连接池的。用户可以通过特定的方法来获取数据库的连接,同时这个连接的类型应该是标准的java.sql.Connection。用户在获取到这个数据库连接后可以对这个连接进行任意的操作,包括关闭连接等。通过对用户使用的描述,怎样可以接管Connection.close方法就成了我们这篇文章的主题。为了接管数据库连接的close方法,我们应该有一种类似于钩子的机制。例如在Windows编程中我们可以利用Hook API来实现对某个Windows API的接管。在JAVA中同样也有这样一个机制。JAVA提供了一个Proxy类和一个InvocationHandler,这两个类都在java.lang.reflect包中。我们先来看看SUN公司提供的文档是怎么描述这两个类的。public interface InvocationHandlerInvocationHandler is the interface implemented by the invocation handler of a proxy instance. Each proxy instance has an associated invocation handler. When a method is invoked on a proxy instance, the method invocation is encoded and dispatched to the invoke method of its invocation handler.SUN的API文档中关于Proxy的描述很多,这里就不罗列出来。通过文档对接口InvocationHandler的描述我们可以看到当调用一个Proxy实例的方法时会触发Invocationhanlder的invoke方法。从JAVA的文档中我们也同时了解到这种动态代理机制只能接管接口的方法,而对一般的类无效,考虑到java.sql.Connection本身也是一个接口由此就找到了解决如何接管close方法的出路。首先,我们先定义一个数据库连接池参数的类,定义了数据库的JDBC驱动程序类名,连接的URL以及用户名口令等等一些信息,该类是用于初始化连接池的参数,具体定义如下:public class ConnectionParam implements Serializable /** * 从连接池工厂中获取指定名称对应的连接池
在Java中如何对数据库中的数据进行操作?
//此类为连接数据库并进行数据库的操作
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Conn {
private static Connection conn = null;
private static Statement st = null;
private static ResultSet rs = null;
//建立数据库的连接
public Conn(){
String url = "jdbc:sqlserver://localhost:1433;databaseName=ZYGX";
String user = "sa";
String password = "123";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(url, user, password);
st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 通过不同 的sql语句,得到相应Resultset结果集
public ResultSet getRs(String sql){
try{
rs= st.executeQuery(sql);
}catch(SQLException e){
e.printStackTrace();
}
return rs;
}
// 根据不同的sql语句,执行数据库的更新操作
public int updata(String sql){
int num=0;
try{
num = st.executeUpdate(sql);
}catch(SQLException e){
e.printStackTrace();
}
return num;
}
// 关闭数据库连接相应的资源
public void close(){
try{
if(rs!=null){
rs.close();
rs = null;
}
if(st!=null){
st.close();
st = null;
}
if(conn!=null){
conn.close();
conn = null;
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
----------------------------------------------------------------------
//可以对button里添加动作按钮:
final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
Conn conn =new Conn();
String sql1="select * from aa where name='"+name+"' ";//按name值查找
ResultSet rs = conn.getRs(sql1);
try {
while(rs.next()){
int n=rs.getString("type");
}
} catch (SQLException e) {
e.printStackTrace();
}
String name=textField.getText();
String sql="update aa set tittle='"+name+"' ";//从aa表将title字段的值改成textField里的name值
String sql2 ="delete from aa where name='"+name+"'";//从aa表将按取得name的值删除该行数据
String sql3 = "insert into aa (name,uname) values ('"+name+"','"')"; //将name,uname值新增到aa表
if(conn.update(sql)==1){
System.out.print("修改成功");
}
if(conn.update(sql2)==1){
System.out.print("删除成功");
}
if(conn.update(sql3)==1){
System.out.print("新增成功");
}
}
});
java数据库,怎么在一个文件中连接数据库,另一个文件中执行数据库操作?
这是我做的2个javabean
第一个用于对物理数据库地层的连接;
第二个用于用户对数据库的操作;
具体你需要的自己改
第一个:
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;
}
/**
* 添加用户,该方法必须在codeisExit(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;
}
}