接上一篇
补充:事实上java的类需要在src文件夹里写,classes文件夹只是会同步src文件夹里的类。如果在classes文件夹里操作java类,是会提示文件只读的。src文件夹中进行代码编写
5、数据库连接代码
到第三篇终于到了写代码的时间了呜呜...我选择写调试数据库的代码,直接写sevlert的话debug比较麻烦,先写数据库部分就能有效避免数据库出错了。下面是代码,注释很详细了
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; public class jdbc{ public jdbc () { } public static void main(String[] args) { String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=S-T";//JDBC的本机地址,DatabaseName注意改成对应数据库的名字 String userName = "sa"; String userPwd = "111";//SQD sever验证的用户名和密码 Connection dbConn = null;//连接的实体 String sql = "select * from Student"; try { dbConn = DriverManager.getConnection(dbURL, userName, userPwd); Statement statement = dbConn.createStatement(); ResultSet resultSet = statement.executeQuery(sql);//执行SQL语句,用于产生单个结果集 System.out.println(resultSet);//返回值不为-11或空就证明SQL语句执行成功 } catch (SQLException var18) { var18.printStackTrace(); } finally { try { if (dbConn != null) {//结束时关闭连接 dbConn.close(); dbConn = null; } } catch (Exception var17) { } } } }
6、使用fastjson将查询出的结果生成json数据
在日志解析,前后端数据传输交互中,经常会遇到字符串(String)与json
,XML
等格式相互转换与解析,其中json
以跨语言,跨前后端的优点在开发中被频繁使用,基本上可以说是标准的数据交换格式。fastjson是一个java语言编写的高性能且功能完善的JSON库,它采用一种“假定有序快速匹配”的算法,把JSON Parse
的性能提升到了极致。它的接口简单易用,已经被广泛使用在缓存序列化,协议交互,Web输出等各种应用场景中。
如果简介看不懂也没关系,我们只需知道,fastjson使用前需要有一个类说明它要转化的对象的样式。这个类需要有空构造函数、一般构造函数,每一个属性都需要有对应的get、set方法。下面是一个学生类
public class student { String name; String id; String sex; String age; public student(){ } public student(String name,String id,String sex,String age){ this.age=age; this.name=name; this.id=id; this.age=age; } public void setName(String name){ this.name=name; } public void setId(String id){ this.id=id; } public void setSex(String sex){ this.sex=sex; } public void setAge(String age){ this.age=age; } public String getName(){ return name; } public String getId(){ return id; } public String getSex(){ return sex; } public String getAge(){ return age; } }
import com.alibaba.fastjson.JSONObject; import java.sql.*; import java.util.ArrayList; import java.util.List; //这是查询后显示的代码,详情看注释 public class connect { public static void main(String[] args) { String dbURL="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=S-T"; String userName="sa"; String userPwd="111"; Connection dbConn = null; String sql="select * from Student";//同连接数库的含义 List<student> students=new ArrayList<>();//开一个list来保存学生信息 try { //response.setContentType("text/html"); dbConn= DriverManager.getConnection(dbURL,userName,userPwd); Statement statement=dbConn.createStatement(); ResultSet resultSet=statement.executeQuery(sql); while (resultSet.next()){//每查询到一条记录 student st=new student();//存储一个新对象 st.setName(resultSet.getString("Sname"));//注意观察,set方法是针对student类的,getString里对应的是数据库中的列明 st.setId(resultSet.getString("Sno")); st.setSex(resultSet.getString("Ssex")); st.setAge(resultSet.getString("Sage")); students.add(st);//加入list } System.out.println(JSONObject.toJSONString(students));//转变为json对象 } catch (SQLException e) { e.printStackTrace(); } finally { try {//关闭连接 if(dbConn!=null) { dbConn.close(); dbConn=null; } } catch(Exception ex) { } } } }
查询结果,可以看出是json格式