java程序对数据是通过JDBC 链接数据库的,这样我就可以通过SQL对数据编程。JDBC是由SUN公司提出的一系列规则,但是它自定义接口规范,而体是交给数据库厂商去完成得,这是java规范没有办法确定,所以JDBC就是一种经典的链接。
传统的JDBC链接是使用给我们带来了接连数据库的功能,但是也引发了巨大的问题。
我们用JDBC编程一个例子,我们将从mysql数据库中从查询一个旅游地址名称做假设。
获取链接
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.logging.Logger;
public class JDBC {
private Connection getConnection(){
Connection connection =null;
try{
Class.forName("com.mysql.jdbc.Driver");//驱动地址
String url="jdbc:mysql://127.0.0.1:3306/mysql?zzeroDateTimeBehavior=convertToNull";
String user="rott";
String password="root";
connection = DriverManager.getConnection(url, user, password);
}catch (Exception e){
Logger.getLogger("null");
return null;
}
return connection;
}
}
业务逻辑:
public static List< Map<Object,String>> sql(String sql) throws Exception {
SqlSession session = Mybitis.openSession();
Connection conn = session.getConnection();
Statement state=conn.createStatement();//容器
Map<Object,String> map=new HashMap<Object, String>();
List< Map<Object,String>> list=new ArrayList<Map<Object, String>>();
ResultSet rs=state.executeQuery(sql); //将sql语句传至数据库,返回的值为一个字符集用一个变量接收
ResultSetMetaData data = rs.getMetaData();
while(rs.next()){ //next()获取里面的内容
map=new HashMap<Object, String>();
for (int i = 0; i <data.getColumnCount(); i++) {
String ss = data.getColumnLabel(i + 1);
String string = rs.getString(i + 1);
map.put(ss,string);
}
list.add(map);
}
conn.close();
return list;
}
测试:
public static void main(String[] args) throws Exception {
List<Map<Object, String>> sql = sql("SELECT * from tab_category ");
for (Map<Object, String> map : sql) {
System.out.println(map);
}
}
测试结果:
{cname=5A景点游, cid=8}
{cname=全球自由行, cid=9}
{cname=出境游, cid=4}
{cname=古镇游, cid=3}
{cname=台湾游, cid=7}
{cname=周边游, cid=1}
{cname=国内游, cid=5}
{cname=山水游, cid=2}
{cname=港澳游, cid=6}