利用idea完成的第一个项目
Q1:数据库
create database if not exists StudentsDBs default charset utf8; use StudentsDBs; #Student(学生表) drop database StudentsDBs; create table Student ( Sid int primary key auto_increment, Sno char(3) not null comment '学号', Sname char(8) not null comment '学生姓名', Ssex char(2) not null comment '学生性别', Sbirthday datetime comment '学生出生年月', Class char(5) comment '学生所在班级', Course char(10) comment '课程' ); #给学生表插入数据 insert into Student(Sno,Sname,Ssex,Sbirthday,Class,Course) vlaues('108','曾华','男','1977-09-01','95033','语文'); insert into Student values ('108','曾华','男','1977-09-01','95033','语文'), ('105','匡明','男','1975-10-02','95031','数学'), ('107','王丽','女','1976-01-23','95033','英语'), ('108','曾华','男','1977-09-01','95033','数学'), ('105','匡明','男','1975-10-02','95031','英语'), ('107','王丽','女','1976-01-23','95033','数学'), ('101','李军','男','1976-02-20','95033','语文'), ('109','王芳','女','1975-02-10','95031','语文'), ('103','陆军','男','1974-06-03','95031','语文'), ('101','李军','男','1976-02-20','95033','数学'), ('109','王芳','女','1975-02-10','95031','数学'), ('103','陆军','男','1974-06-03','95031','数学'), ('101','李军','男','1976-02-20','95033','导学率'), ('101','李军','男','1976-02-20','95033','生物'), ('109','王芳','女','1975-02-10','95031','高等教育'), ('109','王芳','女','1975-02-10','95031','数学'), ('103','陆军','男','1974-06-03','95031','人文'), ('101','李军','男','1976-02-20','95033','英语'), ('101','李军','男','1976-02-20','95033','物理'), ('109','王芳','女','1975-02-10','95031','高等数学'), ('103','陆军','男','1974-06-03','95031','人文素养'); select *from student;
Q2:vo
package vo; import java.util.Date; public class Students { int sid; String sno; String sname; String ssex; Date sbirthday; String classs; String course; public Students(){} public Students(int sid,String sno, String sname, String ssex, Date sbirthday, String classs,String course) { this.sid=sid; this.sno = sno; this.sname = sname; this.ssex = ssex; this.sbirthday = sbirthday; this.classs = classs; this.course=course; } public int getSid(){ return sid; } public void setSid(int sid){ this.sid=sid; } public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSsex() { return ssex; } public void setSsex(String ssex) { this.ssex = ssex; } public Date getSbirthday() { return sbirthday; } public void setSbirthday(Date sbirthday) { this.sbirthday = sbirthday; } public String getClasss() { return classs; } public void setClasss(String classs) { this.classs = classs; } public String getCourse(){ return course; } public void setCourse(String course){ this.course=course; } @Override public String toString() { return "Students{" + "sid=" + sid + ", sno='" + sno + '\'' + ", sname='" + sname + '\'' + ", ssex='" + ssex + '\'' + ", sbirthday=" + sbirthday + ", classs='" + classs + '\'' + ", course='" + course + '\'' + '}'; } }
Q3:dao
package dao; import util.DBUtil; import vo.Students; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; public class Studentsdaoimpl { //计数 public int getcount(){ int count=0; String sql = "select count(*) from Student"; ResultSet rs = DBUtil.executeQuery(sql); try { while(rs.next()) { count=Integer.parseInt(rs.getString(1)); } } catch (SQLException e) { e.printStackTrace(); } return count; } //查询 public static void main(String[] args) { Studentsdaoimpl s=new Studentsdaoimpl(); /*List<Students> list=s.getMenuAllListPages(1,4); for(Students item:list){ System.out.println(item.getSno()+","+item.getSname()); }*/ int count=s.getcount(); System.out.println(count); } //删除 public int deletes(int sid) { String sql="delete from Student where Sid=?"; return DBUtil.executeUpdate(sql, new Object[] {sid}); } //修改 public int updates(String sname, String ssex, Date sbirthday, String classs, String course, int sid) { String sql="update Student set sname=?,ssex=?,sbirthday=?,Class=?,Course=? where sid=?"; return DBUtil.executeUpdate(sql, new Object[] {sname,ssex,sbirthday,classs,course,sid}); } //添加 public int inserts(String sno,String sname, String ssex, Date sbirthday, String classs,String course) { String sql="insert into Student(Sno,Sname,Ssex,Sbirthday,Class,Course) values(?,?,?,?,?,?)"; return DBUtil.executeUpdate(sql, new Object[] {sno,sname,ssex,sbirthday,classs,course}); } /*查询*/ public List<Students> getAllList() { String sql = "select * from Student"; ResultSet rs =DBUtil.executeQuery(sql); List<Students> list = new ArrayList<Students>(); Students model = null; try { while (rs.next()) { model = new Students(); model.setSid(rs.getInt(1)); model.setSno(rs.getString(2)); model.setSname(rs.getString(3)); model.setSsex(rs.getString(4)); model.setSbirthday(rs.getDate(5)); model.setClasss(rs.getString(6)); model.setCourse(rs.getString(7)); list.add(model); } } catch (SQLException e) { e.printStackTrace(); } return list; } /*分页*/ public List<Students> getMenuAllListPages(int page,int limit){ int start=(page-1)*limit; String sql="select *from Student limit "+start+","+limit; ResultSet rs =DBUtil.executeQuery(sql); List<Students> list = new ArrayList<Students>(); Students model = null; try{ while (rs.next()){ model=new Students(); model.setSid(rs.getInt(1)); model.setSno(rs.getString(2)); model.setSname(rs.getString(3)); model.setSsex(rs.getString(4)); model.setSbirthday(rs.getDate(5)); model.setClasss(rs.getString(6)); model.setCourse(rs.getString(7)); list.add(model); } }catch (SQLException e){ e.printStackTrace(); } return list; } }
Q4:dao测试
package dao; import org.junit.After; import org.junit.Before; import org.junit.Test; import vo.Students; import java.util.List; public class StudentsdaoimplTest { public static Studentsdaoimpl sd=new Studentsdaoimpl(); @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void getcount() { int a=sd.getcount(); System.out.println(a); } @Test public void main() { } @Test public void deletes() { } @Test public void updates() { } @Test public void inserts() { } @Test public void getAllList() { List<Students> list=sd.getAllList(); System.out.println(list.toString()); } @Test public void getMenuAllListPages() { List<Students> list=sd.getMenuAllListPages(1,5); System.out.println(list.toString()); } }
Q5:bo
package bo; import dao.Studentsdaoimpl; import vo.Students; import java.util.Date; import java.util.List; public class Studentsboimpl { /*查询*/ Studentsdaoimpl sd=new Studentsdaoimpl(); public List<Students> getAllList(){ return sd.getAllList(); } /*计数*/ public int getcount(){ return sd.getcount(); } /*分页*/ public List<Students> getMenuAllListPages(int page,int limit){ return sd.getMenuAllListPages(page,limit); } public int updates(String sname, String ssex, Date sbirthday, String classs, String course,int sid){ return sd.updates(sname,ssex,sbirthday,classs,course,sid); } public int inserts(String sno, String sname, String ssex, Date sbirthday, String classs,String course){ return sd.inserts(sno,sname,ssex,sbirthday,classs,course); } public int deletes(int sid){ return sd.deletes(sid); } }
Q6:bo测试
package bo; import org.junit.After; import org.junit.Before; import org.junit.Test; import vo.Students; import java.util.List; public class StudentsboimplTest { public static Studentsboimpl sb=new Studentsboimpl(); @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void getAllList() { List<Students> list=sb.getAllList(); System.out.println(list.toString()); } @Test public void getcount() { int a=sb.getcount(); System.out.println(a); } @Test public void getMenuAllListPages() { List<Students> list=sb.getMenuAllListPages(1,5); System.out.println(list.toString()); } @Test public void updates() { } @Test public void inserts() { } @Test public void deletes() { } }
Q7:baseController
package action; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @WebServlet(name = "actionBaseController") public class actionBaseController extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("application/json;charset=utf-8"); String action=request.getParameter("action"); if(action!=null) { //在当前Servlet实例中根据action找到方法信息 try { Method method = getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class); if (method != null) { // 在当前实例上调用方法method,指定参数request,response try { method.invoke(this, request, response); } catch (IllegalAccessException e) { // TODO Auto-generated catch block System.out.println("安全权限异常,一般来说,是由于java在反射时调用了private方法所导致的。如" + "果是这种情况的话,要把反射pirvate的方向设置成public,再调用"); //e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block System.out.println("此异常表明向方法传递了一个不合法或不正确的参数"); //e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block System.out.println("是一种包装由调用方法或构造方法所抛出异常的受查异常"); e.printStackTrace(); } } } catch (NoSuchMethodException e) { // TODO Auto-generated catch block response.getWriter().write("您请求的action不存在"); //e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block System.out.println("是安全异常的意思。你再仔细检查和安全设置相关的选项是否都设置正确。"); //e.printStackTrace(); } }else { response.getWriter().write("请指定参数action。"); } } }
Q8:servlet(继承basecontroller)
package action; import bo.Studentsboimpl; import jsonUtil.JsonUtils; import vo.Students; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @WebServlet(name = "actionStudents") public class actionStudents extends actionBaseController { /**计数*/ public void counts(HttpServletRequest request, HttpServletResponse response){ Studentsboimpl si=new Studentsboimpl(); String count=si.getcount()+""; try { response.getWriter().print("{\"counts\":"+count+"}"); } catch (IOException e) { e.printStackTrace(); } } /** * 查询数据 * */ public void select(HttpServletRequest request, HttpServletResponse response){ Studentsboimpl sb=new Studentsboimpl(); List<Students> list=sb.getAllList(); List<Students> lists=new ArrayList<Students>(); for(Students item:list){ lists.add(new Students(item.getSid(),item.getSno(), item.getSname(),item.getSsex(),item.getSbirthday(),item.getClasss(), item.getCourse())); } try { System.out.println(JsonUtils.toJson(lists)); response.getWriter().println(JsonUtils.toJson(lists)); } catch (IOException e) { e.printStackTrace(); } } /* * 分页 * */ public void selectpage(HttpServletRequest request, HttpServletResponse response){ Studentsboimpl sb=new Studentsboimpl(); int page=Integer.parseInt(request.getParameter("page")); int limit=Integer.parseInt(request.getParameter("limit")); List<Students> list=sb.getMenuAllListPages(page,limit); List<Students> lists=new ArrayList<Students>(); for(Students item:list){ lists.add(new Students(item.getSid(),item.getSno(), item.getSname(),item.getSsex(),item.getSbirthday(),item.getClasss() ,item.getCourse())); } try { System.out.println(JsonUtils.toJson(lists)); response.getWriter().println(JsonUtils.toJson(lists)); } catch (IOException e) { e.printStackTrace(); } } /** * 添加数据 * */ public void insert(HttpServletRequest request, HttpServletResponse response){ Studentsboimpl sb=new Studentsboimpl(); String Sno=request.getParameter("Sno"); String Sname=request.getParameter("Sname"); String Ssex=request.getParameter("Ssex"); String Sbirthday=request.getParameter("Sbirthday"); Date date=null; try { date = new SimpleDateFormat("yyyy-MM-dd").parse(Sbirthday); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } java.sql.Timestamp datetime = new java.sql.Timestamp(date.getTime()); String Classs=request.getParameter("Classs"); String course=request.getParameter("Course"); int a=sb.inserts(Sno,Sname,Ssex,datetime,Classs,course); if(a>0){ try { response.getWriter().print("{\"msg\":\"添加成功\"}"); } catch (IOException e) { e.printStackTrace(); } } } /** * 删除数据 * */ public void deletes(HttpServletRequest request, HttpServletResponse response){ Studentsboimpl sb=new Studentsboimpl(); int Sno=Integer.parseInt(request.getParameter("Sno")); int a=sb.deletes(Sno); if(a>0){ try { response.getWriter().print("{\"msg\":\"删除成功!\"}"); } catch (IOException e) { e.printStackTrace(); } } } /** * 修改数据 * */ public void updates(HttpServletRequest request, HttpServletResponse response){ Studentsboimpl sb=new Studentsboimpl(); String Sname=request.getParameter("Sname"); String Ssex=request.getParameter("Ssex"); String Sbirthday=request.getParameter("Sbirthday"); Date date=null; try { date = new SimpleDateFormat("yyyy-MM-dd").parse(Sbirthday); } catch (ParseException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } java.sql.Timestamp datetime = new java.sql.Timestamp(date.getTime()); String Classs=request.getParameter("Classs"); String course= request.getParameter("Course"); int Sno=Integer.parseInt(request.getParameter("Sno")); int a=sb.updates(Sname,Ssex,datetime,Classs,course,Sno); if(a>0){ try { response.getWriter().print("{\"msg\":\"修改成功\"}"); } catch (IOException e) { e.printStackTrace(); } } } }
Q9:html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="js/layui/css/layui.css"> </head> <style> table,th,td{ border: 1px solid red; border-collapse: collapse; text-align: center; } table{ width: 100%; box-shadow: 3px 3px 3px blue; } th,td{ height: 30px; } input[type=button]{ background: yellowgreen; color: white; } thead tr{ background: red; color: white; } </style> <body> <script src="js/jquery-1.11.3.js"></script> <script src="js/layui/layui.all.js"></script> <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;"> <legend>自定义分页展示框</legend> </fieldset> <div id="demo11"></div> <table> <thead> <tr> <th>编号</th> <th>学号</th> <th>姓名</th> <th>性别</th> <th>生日</th> <th>班级</th> <th>课程</th> <th>操作</th> </tr> </thead> <tbody> </tbody> </table> <fieldset> <legend>添加</legend> <p> <label for="Sno">学号</label> <input type="text" id="Sno" name="Sno" placeholder="请输入学号" /> </p> <p> <label for="Sname">姓名</label> <input type="text" id="Sname" name="Sname" placeholder="请输入姓名"/> </p> <p> <label>性别</label> 男<input type="radio" name="sex" value="男" id="man"/> 女<input type="radio" name="sex" value="女" id="woman"/> </p> <p> <label for="Sbirthday">日期</label> <input type="date" id="Sbirthday" name="Sbirthday"/> </p> <p> <label>班级</label> <select id="sel1"> <option value ="95033">95033</option> <option value ="95031">95031</option> </select> </p> <p> <label>课程</label> <select id="sel2"> <option value ="语文">语文</option> <option value ="数学">数学</option> <option value ="英语">英语</option> <option value ="数学">物理</option> <option value ="物理">化学</option> <option value ="生物">生物</option> <option value ="人文素养">人文素养</option> <option value ="高等数学">高等数学</option> </select> </p> <p> <input type="button" value="添加" id="btnadd"/> <input type="button" value="修改" id="btnupdate"/> </p> </fieldset> <script> var number=""; $.ajax({ type:'post', url:'actionStudents?action=counts', async:false, success:function (data) { number=data.counts; } }); var pages="";var limits=""; layui.use(['laypage', 'layer'], function(){ var laypage = layui.laypage ,layer = layui.layer; //自定义每页条数的选择项 function m() { /**/ laypage.render({ elem: 'demo11' ,limit: 5 ,count: number ,async:false ,curr:pages ,jump:function (objs){ pages=objs.curr; limits=objs.limit; /**/ $("table tbody tr").remove(); $.ajax({ type:'post', data:{page:pages ,limit:limits}, url:'actionStudents?action=selectpage', success:function (data) { $.each(data,function (i,obj) { var tr=$("<tr/>"); (tr).append($("<td/>").html(obj.sid)) .append($("<td/>").html(obj.sno)).append($("<td/>").html(obj.sname)) .append($("<td/>").html(obj.ssex)).append($("<td/>").html(obj.sbirthday)) .append($("<td/>").html(obj.classs)).append($("<td/>").html(obj.course)) .append($("<td/>") .append($("<input type='button' value='删除' id='btnDel'/>").data("obj",obj.sid)) .append($("<input type='button' value='编辑' id='btnEdit'/>").data("obj",obj)) ).appendTo($("table tbody")); }) } }); /**/ } }); /**/ }; /**/ var app={ /*查询*/ updaid:"", select:function(){ }, /*编辑*/ edits:function(obj){ $("#Sno").val(obj.sno);$("#Sname").val(obj.sname); /*$("input[type='radio']:checked").val(obj.ssex);*/ $("#Sbirthday").val(obj.sbirthday); $("#sel1").val(obj.classs); $("#sel2").val(obj.course); if(obj.ssex=="男"){ $("#man").prop("checked","true"); }else { $("#woman").prop("checked","true"); } }, /*修改*/ updat:function(){ if(confirm("是否要修改?")){ var Sname=$("#Sname").val(); var Ssex=$("input[type='radio']:checked").val(); var Sbirthday=$("#Sbirthday").val(); var Classs=$("#sel1").val(); var Course=$("#sel2").val(); /*alert(Sname+Ssex+Sbirthday+Classs+app.updaid)*/; $.ajax({ type:'post', data:{Sname:Sname,Ssex:Ssex,Sbirthday:Sbirthday,Classs:Classs,Course:Course,Sno:app.updaid}, url:'actionStudents?action=updates', success:function (data) { alert(data.msg); m(); } }); } }, /*删除*/ deletes:function(obj){ if(confirm("是否要删除?")){ var Sno=obj; $.ajax({ type:'post', data:{Sno:Sno}, url:'actionStudents?action=deletes', success:function (data) { alert(data.msg); m(); } }); } }, /*添加*/ inserts:function(){ var Sno=$("#Sno").val();var Sname=$("#Sname").val(); var Ssex=$("input[type='radio']:checked").val(); var Sbirthday=$("#Sbirthday").val(); var Classs=$("#sel1").val(); var Course=$("#sel2").val(); $.ajax({ type:'post', data:{Sno:Sno,Sname:Sname,Ssex:Ssex,Sbirthday:Sbirthday,Classs:Classs,Course:Course}, url:'actionStudents?action=insert', success:function (data) { alert(data.msg); m(); } }); }, /*一些绑定事件*/ clicks:function(){ /*添加事件*/ $("#btnadd").click(function () { app.inserts(); }); $("table tbody").on("click","#btnEdit",function () { var Sno=$(this).data("obj"); app.updaid=Sno.sid; app.edits(Sno); }); $("table tbody").on("click","#btnDel",function () { var Sno=$(this).data("obj"); app.deletes(Sno); }), /*修改*/ $("#btnupdate").click(function () { app.updat(); }) }, /*初始化方法*/ init:function () { m(); app.clicks(); } }; app.init(); /**/ }); </script> </body> </html>
Q10:DBUtil
package util; import java.io.IOException; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Properties; public class DBUtil { //连接对象 //Statement 命令对象 //打开连接 //关闭连接 //得到一个连接对象 //查询(有参,无参) //修改(有参,无参) static Connection conn = null; static Statement stmt = null; //驱动,服务器地址,登录用户名,密码 /*static String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; static String DBURL="jdbc:sqlserver://localhost:1433;DatabaseName=login"; static String DBUSER="sa"; static String DBPWD="caoyu3520563253";*/ static String DBDRIVER; static String DBURL; static String DBUSER; static String DBPWD; static { //先创建资源文件,扩展名为.properties //内容是以:dbuser=sa 格式 Properties prop = new Properties();//先获取资源对象 try { prop.load(Thread.currentThread().getContextClassLoader(). getResourceAsStream("resources/dbconfig.properties")); DBDRIVER = prop.getProperty("DBDRIVER"); DBURL = prop.getProperty("DBURL"); DBUSER = prop.getProperty("DBUSER"); DBPWD = prop.getProperty("DBPWD"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //打开连接 public static void open() { //加载驱动 try { Class.forName(DBDRIVER); conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //关闭连接 public static void close() { try { if(stmt!=null && stmt.isClosed()) stmt.close(); if(conn!=null && !conn.isClosed()) conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //得到一个连接对象,当用户使用DBUtil无法解决个性问题时 //可以通过本方法获得连接对象 public static Connection getConnection() { try { if(conn==null ||conn.isClosed()) open(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //executeQuery //executeUpdate //execute //获得查询的数据集 //不带参数的查询 //select * from student where name='' and sex='' public static ResultSet executeQuery(String sql) { try { open();//保证连接是成功的 stmt = conn.createStatement(); return stmt.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } //修改表格内容 public static int executeUpdate(String sql) { int result = 0; try { open();//保证连接是成功的 stmt = conn.createStatement(); result = stmt.executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { close(); } return result; } //如果执行的查询或存储过程,会返回多个数据集,或多个执行成功记录数 //可以调用本方法,返回的结果, //是一个List<ResultSet>或List<Integer>集合 public static Object execute(String sql) { boolean b=false; try { open();//保证连接是成功的 stmt = conn.createStatement(); b = stmt.execute(sql); //true,执行的是一个查询语句,我们可以得到一个数据集 //false,执行的是一个修改语句,我们可以得到一个执行成功的记录数 if(b){ return stmt.getResultSet(); } else { return stmt.getUpdateCount(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if(!b) { close(); } } return null; } // //select * from student where name=? and sex=? //带参数的查询,只有输入参数 public static ResultSet executeQuery(String sql,Object[] in) { try { open();//保证连接是成功的 PreparedStatement pst = conn.prepareStatement(sql); for(int i=0;i<in.length;i++) pst.setObject(i+1, in[i]); stmt = pst;//只是为了关闭命令对象pst return pst.executeQuery(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } //带参数修改,只有输入参数 public static int executeUpdate(String sql,Object[] in) { try { open();//保证连接是成功的 PreparedStatement pst = conn.prepareStatement(sql); for(int i=0;i<in.length;i++) pst.setObject(i+1, in[i]); stmt = pst;//只是为了关闭命令对象pst return pst.executeUpdate(); } catch (SQLException e) { System.out.println(e.getMessage()); //e.printStackTrace(); }finally { close(); } return 0; } public static Object execute(String sql,Object[] in) { boolean b=false; try { open();//保证连接是成功的 PreparedStatement pst = conn.prepareStatement(sql); for(int i=0;i<in.length;i++) pst.setObject(i+1, in[i]); b = pst.execute(); //true,执行的是一个查询语句,我们可以得到一个数据集 //false,执行的是一个修改语句,我们可以得到一个执行成功的记录数 if(b){ System.out.println("----"); /*List<ResultSet> list = new ArrayList<ResultSet>(); list.add(pst.getResultSet()); while(pst.getMoreResults()) { list.add(pst.getResultSet()); }*/ return pst.getResultSet(); } else { System.out.println("****"); List<Integer> list = new ArrayList<Integer>(); list.add(pst.getUpdateCount()); while(pst.getMoreResults()) { list.add(pst.getUpdateCount()); } return list; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if(!b) { System.out.println("===="); close(); } } return null; } //调用存储过程 proc_Insert(?,?,?) public static Object executeProcedure(String procName,Object[] in) { open(); try { procName = "{call "+procName+"("; String link=""; for(int i=0;i<in.length;i++) { procName+=link+"?"; link=","; } procName+=")}"; CallableStatement cstmt = conn.prepareCall(procName); for(int i=0;i<in.length;i++) { cstmt.setObject(i+1, in[i]); } if(cstmt.execute()) { return cstmt.getResultSet(); } else { return cstmt.getUpdateCount(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /* * 调用存储过程,并有输出参数 * @procName ,存储过程名称:proc_Insert(?,?) * @in ,输入参数集合 * @output,输出参数集合 * @type,输出参数类型集合 * */ public static Object executeOutputProcedure(String procName, Object[] in,Object[] output,int[] type){ Object result = null; try { CallableStatement cstmt = conn.prepareCall("{call "+procName+"}"); //设置存储过程的参数值 int i=0; for(;i<in.length;i++){//设置输入参数 cstmt.setObject(i+1, in[i]); //print(i+1); } int len = output.length+i; for(;i<len;i++){//设置输出参数 cstmt.registerOutParameter(i+1,type[i-in.length]); //print(i+1); } boolean b = cstmt.execute(); //获取输出参数的值 for(i=in.length;i<output.length+in.length;i++) output[i-in.length] = cstmt.getObject(i+1); if(b) { result = cstmt.getResultSet(); } else { result = cstmt.getUpdateCount(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } //调用存储过程查询出所有的值 public static Object executeProcedures(String procName) { open(); try { procName = "{call "+procName+"}"; CallableStatement cstmt = conn.prepareCall(procName); if(cstmt.execute()) { return cstmt.getResultSet(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
Q11:配置文件
DBDRIVER=com.mysql.jdbc.Driver DBURL=jdbc:mysql://localhost:3306/StudentsDBs?serverTimezone=GMT%2B8 DBUSER=root DBPWD=
Q12:json装换
package jsonUtil; import java.text.SimpleDateFormat; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; public class JsonUtils { /** * 序列化成json * */ public static String toJson(Object obj) { // 对象映射器 ObjectMapper mapper = new ObjectMapper(); //SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd HH:mm:ss"); //mapper.setDateFormat(sdf); String result = null; // 序列化user对象为json字符串 try { result = mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { e.printStackTrace(); } return result; } /** * 反序列化成对象 * */ public static <T> T toObject(String json,Class<T> valueType) { //对象映射器 ObjectMapper mapper=new ObjectMapper(); T result=null; try { result=mapper.readValue(json,valueType); }catch (Exception e) { e.printStackTrace(); } return result; } }
Q13:展示
zywds