本文目录一览:
- 如何利用JAVA在数据库中实现查询功能
- 在Java语言中如何实现数据库的访问?
- JAVA 最佳实践 到底什么是最佳实践,什么意思呢?在线等
- JAVA代码中如何封装数据字典。
- Java集合类框架的最佳实践有哪些?
- Java中对数据库操作实例
如何利用JAVA在数据库中实现查询功能
不知道你会不会看懂啊 这是查询一个名字,把他相关的一些信息列出来
String strSQL;
strSQL="select * from tb_manager where manager='"+jTextField1.getText().trim()+"'";
rs=db.getResult(strSQL);
try {
if(rs.first()) {
jTextField1.setText(rs.getString("manager"));
jTextField2.setText(rs.getString("den"));
jTextField3.setText(rs.getString("ID"));
jTextField4.setText(rs.getString("remark"));
jTextField5.setText(rs.getString("sex"));
} else {
JOptionPane.showMessageDialog(null,"无此信息");
}
} catch(SQLException e) {
JOptionPane.showMessageDialog(null," 查询信息失败!");
}
在Java语言中如何实现数据库的访问?
- JDBC呗,
import java.sql.*;
传统连接方式:Connection conn = getConnection(); // 获得连接 // 注意下边应该抛出个SQLException异常 Statement stat = conn.createStatement(); stat.executeXXX(".........") // 执行SQL语句,查询就是Query,插入、修改这种操作就Update ResultSet result; // 查询后返回的结果集用这个保存 conn.close(); // 最后别忘了关闭连接
- 当然是Hibernate了,是一种持久层技术,建立相应的实体后可以把数据库当对象操作,非常方便,具体使用我觉得应该看看书会比较好!
JAVA 最佳实践 到底什么是最佳实践,什么意思呢?在线等
自己动手,用java编程实现特定的功能需求,这就是java的最佳实践。
JAVA代码中如何封装数据字典。
Map
可以实现类似数据库的功能。比如一个人的姓名和年龄信息你可以存在一个Map
里面,就像这样:
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("张三", 40);
System.out.println("张三的年龄是:" + map.get("张三"));
Java集合类框架的最佳实践有哪些?
- 根据应用的需要正确选择要使用的集合的类型对性能非常重要,比如:假如元素的大小是固定的,而且能事先知道,就应该用
Array
而不是ArrayList
。 - 有些集合类允许指定初始容量。因此,如果能估计出存储的元素的数目,可以设置初始容量来避免重新计算hash值或者是扩容。
为了类型安全、可读性和健壮性的原因,总是要使用泛型。同时,使用泛型还可以避免运行时的
ClassCastException
。 - 使用JDK提供的不变类(
immutable class
)作为Map
的键可以避免为自己的类实现hashCode()
和equals()
方法。 - 编程的时候接口优于实现。
- 底层的集合实际上是空的情况下,返回长度是0的集合或者是数组,不要返回null。
Java中对数据库操作实例
可以以普通的JDBC连接的使用习惯来使用连接池。数据库连接池在编写应用服务时经常需要用到的模块,太过频繁的连接数据库对服务性能来讲是一个瓶颈,使用缓冲池技术可以来消除这个瓶颈。我们可以在互联网上找到很多关于数据库连接池的源程序,但是都发现这样一个共同的问题:这些连接池的实现方法都不同程度地增加了与使用者之间的耦合度。很多的连接池都要求用户通过其规定的方法获取数据库的连接,这一点我们可以理解,毕竟目前所有的应用服务器取数据库连接的方式都是这种方式实现的。但是另外一个共同的问题是,它们同时不允许使用者显式的调用Connection.close()
方法,而需要用其规定的一个方法来关闭连接。这种做法有两个缺点:
- 第一:改变了用户使用习惯,增加了用户的使用难度。首先我们来看看一个正常的数据库操作过程:
使用者在用完数据库连接后通常是直接调用连接的方法int executeSQL(String sql) throws SQLException { ... } finally { ... } catch(Exception e) { ... } catch(Exception e) { ... return res; }
close
来释放数据库资源,如果用我们前面提到的连接池的实现方法,那语句conn.close()
将被某些特定的语句所替代。 - 第二:使连接池无法对之中的所有连接进行独占控制。由于连接池不允许用户直接调用连接的
close
方法,一旦使用者在使用的过程中由于习惯问题直接关闭了数据库连接,那么连接池将无法正常维护所有连接的状态,考虑连接池和应用由不同开发人员实现时这种问题更容易出现。 综合上面提到的两个问题,我们来讨论一下如何解决这两个要命的问题。首先我们先设身处地的考虑一下用户是想怎么样来使用这个数据库连接池的。用户可以通过特定的方法来获取数据库的连接,同时这个连接的类型应该是标准的java.sql.Connection
。用户在获取到这个数据库连接后可以对这个连接进行任意的操作,包括关闭连接等。通过对用户使用的描述,怎样可以接管Connection.close
方法就成了我们这篇文章的主题。为了接管数据库连接的close
方法,我们应该有一种类似于钩子的机制。例如在Windows编程中我们可以利用Hook API来实现对某个Windows API的接管。在JAVA中同样也有这样一个机制。我们先来看看SUN公司提供的文档是怎么描述这两个类的:
public interface InvocationHandler {
InvocationHandler 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.
}
从文档中我们可以看到当调用一个Proxy实例的方法时会触发Invocationhanlder
的invoke
方法。考虑到java.sql.Connection
本身也是一个接口,由此就找到了解决如何接管close
方法的出路。
首先,我们先定义一个数据库连接池参数的类,定义了数据库的JDBC驱动程序类名,连接的URL以及用户名口令等等一些信息,该类是用于初始化连接池的参数,具体定义如下:
public class ConnectionParam implements Serializable {
/**
* 从连接池工厂中获取指定名称对应的连接池
*/
}