-
数据库 触发器 实现功能
2017-05-19 16:13:38Oracle数据库可不可以实现一个功能,就是一到某个时间点就是执行一些代码??? -
Oracle数据库中实现limit功能
2020-09-16 17:08:17oracle数据库中是没有limit关键字的,想在Oracle数据库中实现limit功能可以通过使用rownum来限制结果集行数。 使用将tableName替换成自己的表名就可以 例子1:返回结果集中前10行 select * from tableName where ...oracle数据库中是没有limit关键字的,想在Oracle数据库中实现limit功能可以通过使用rownum来限制结果集行数。
使用将tableName替换成自己的表名就可以
例子1:返回结果集中前10行
select * from tableName where rownum <= 10;
列子2:返回结果集中第10行到第100行
select * from (select rownum rn,t.* from tableName t) where rn<=100 and rn >=10;
-
java 实现mysql备份数据库功能
2018-06-27 17:54:25最近新的项目中有个需求,要求实现mysql远程备份数据库功能,参考网上各种文章,走了不少弯路,特此记录分享: 首先在windows 系统下面 通过命令行实现数据库备份功能如下:D:/MySQL/bin/mysqldump -h localhost -p...最近新的项目中有个需求,要求实现mysql远程备份数据库功能,参考网上各种文章,走了不少弯路,特此记录分享:
首先在windows 系统下面 通过命令行实现数据库备份功能如下:
D:/MySQL/bin/mysqldump -h localhost -p3306 -uroot -p123456 database_name > D:\test.sql
上面 D:/MySQL/bin/mysqldump 指的是运行mysql安装目录下mysqldump.exe
-h localhost 数据库地址 -p3306 端口号,默认可以省略 -uroot 用户名 -p123456 密码 database_name 备份的数据库名称
D:\test.sql 生成备份文件 目录及名称(自定义)
下面附上java代码实现方法
public static boolean exportDatabaseTool(){
try {
Runtime rt = Runtime.getRuntime(); // 调用 调用mysql的安装目录的命令 Process child = rt.exec("cmd /c D:/MySQL/bin/mysqldump -h localhost -uroot -p123456 mysql "); // 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行 InputStream in = child.getInputStream();// 控制台的输出信息作为输入流 InputStreamReader xx = new InputStreamReader(in, "utf-8"); // 设置输出流编码为utf-8。这里必须是utf-8,否则从流中读入的是乱码 String inStr; StringBuffer sb = new StringBuffer(""); String outStr; // 组合控制台输出信息字符串 BufferedReader br = new BufferedReader(xx); while ((inStr = br.readLine()) != null) { sb.append(inStr + "\r\n"); } outStr = sb.toString(); // 要用来做导入用的sql目标文件: FileOutputStream fout = new FileOutputStream("E:\\database\\20180628.sql"); OutputStreamWriter writer = new OutputStreamWriter(fout, "utf-8"); writer.write(outStr); writer.flush(); in.close(); xx.close(); br.close(); writer.close(); fout.close(); if(child.waitFor() == 0){//0 表示线程正常终止。 return true; } } catch (Exception e) { e.printStackTrace(); } return false; }
-
简单页面+java后台+数据库,实现从页面对数据库的增删改查
2017-08-02 15:48:05在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表 我用一个新闻的例子来实现,首先编写java后台程序 java后台程序: 我们用三层的模式进行设计:分别是...在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表
我用一个新闻的例子来实现,首先编写java后台程序
java后台程序:
我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属
性截个图
首先是写功能写的顺序分别是从servlet,service,dao层:
servlet层代码如下:
public class TypeServlet { TypeService ts=new TypeServiceImp();//调用service层 /*******添加************************************************************************************/ public int addtype(String name){ int a=0; a=ts.addtype(name); return a; } /*******查看************************************************************************************/ public List<types> selets(){ List<types> list=new ArrayList<types>(); list=ts.selets(null); return list; } /*******删除************************************************************************************/ public int delete(int id){ int a=0; types t=new types(); t.setId(id); a=ts.delete(t); return a; } /*******修改************************************************************************************/ public int update(types t){ int a=0; a=ts.update(t); return a; } /*******查找一个************************************************************************************/ public types selectone(int id){ types t=new types(); t.setId(id); types nt=ts.selectone(t); return nt; } }
Service层分为两层分别为接口层和实现层
接口程序如下:
public interface TypeService { public int addtype(String name); public List<types> selets(types t); public int delete(types t); public int update(types t); public types selectone(types t); }
接口实现程序:public class TypeServiceImp implements TypeService{ TypeDao td= new TypeDaoImp(); public int addtype(String name) { //注意返回数据不要忘记修改 int a=0; a=td.addtype(name); return a; } public List<types> selets(types t) { List<types> list=new ArrayList<types>(); list=td.selets(t); return list; } /*******删除************************************************************************************/ public int delete(types t) { int a=0; a=td.delete(t); return a; } /*******修改************************************************************************************/ public int update(types t) { int a=0; a=td.update(t); return a; } /*******查找单个************************************************************************************/ public types selectone(types t){ types tp=new types(); tp=td.selectone(t); return tp; } }
Dao层程序同样分为接口层和实现层
接口层程序:
public interface TypeDao { public int addtype(String name); public List<types> selets(types t); public int delete(types t); public int update(types t); public types selectone(types t); }
实现类程序:public class TypeDaoImp implements TypeDao{ Connection con=null; PreparedStatement ps=null; ResultSet rs=null; public int addtype(String name){ int a=0; try { //连接数据库 con=Shujuku.conn(); String sql="insert into typesname values(?)"; //设置id自增 ps=con.prepareStatement(sql); ps.setString(1, name); a=ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return a; } public List<types> selets(types t) { List<types> list=new ArrayList<types>(); try { //连接数据库 con=Shujuku.conn(); String sql="select*from typesname"; ps=con.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ types ty=new types(); ty.setId(rs.getInt("id")); ty.setTypename(rs.getString("typename")); list.add(ty); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } /*******删除************************************************************************************/ public int delete(types t) { int a=0; try { con=Shujuku.conn(); String sql="delete from typesname where id="+t.getId(); ps=con.prepareStatement(sql); a=ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return a; } /*******修改************************************************************************************/ public int update(types t) { int a=0; try { con=Shujuku.conn(); String sql="update typesname set typename=? where id=?"; ps=con.prepareStatement(sql); ps.setString(1, t.getTypename()); ps.setInt(2, t.getId()); a=ps.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return a; } /*******查找一个************************************************************************************/ public types selectone(types t) { types tp=new types(); try { con=Shujuku.conn(); String sql="select * from typesname where id=?"; ps=con.prepareStatement(sql); ps.setInt(1, t.getId()); rs=ps.executeQuery(); if(rs.next()){ tp.setId(rs.getInt("id")); tp.setTypename(rs.getString("typename")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return tp; } }
最后就是数据库包,为了方便使用,将数据库的驱动连接信息建立一个包存放:
代码如下:
public class Shujuku { public static Connection conn(){ //定义地址 String url="jdbc:sqlserver://localhost:1433;DatabaseName=test;"; //定义连接初始值 Connection connection=null; try { //加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //建立连接 connection=DriverManager.getConnection(url, "sa", "DCX5201314"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return connection; } }
属性包,代码如下:public class types { private int id; private String typename; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTypename() { return typename; } public void setTypename(String typename) { this.typename = typename; } }
java后台程序就这么多;
接下来是数据库部分:
数据库部分主要就是建立一张表,笔者使用的是SQL Server 2008,首先建个数据库test,建立个表typesname,设置两列分别为id typename,id设为主键,int 型,自增为1;typename设置类型为varchar型,不能为空。
好了,数据库和java后台都搭建好了,现在来到前端网页部分,
网页部分
在myeclipse中新建7个jsp文件
index.jsp是一个总的网页
设置代码如下:
</head> <frameset rows="20%,80%"> <frame src="head.jsp"> <frameset cols="20%,80%"> <frame src="left.jsp"> <frame src="right.jsp" name="rights"> </frameset> </frameset> <body> </body>
head.jsp
<body> <h1>这是头部</h1> </body>
left.jsp
<body> <h1>这是左边</h1> <ul> <li><a href="addtype.jsp" target="rights">添加新闻类型</a></li> <li><a href="showtype.jsp" target="rights">查看新闻类型</a></li> </ul> </body>
right.jsp
<body> <h1>这是右边</h1> </body>
addtype.jsp
</head> <% request.setCharacterEncoding("UTF-8"); String name= request.getParameter("typename"); if(name!=null){ TypeServlet tp=new TypeServlet(); int a=tp.addtype(name); if(a>0){ RequestDispatcher rd = request .getRequestDispatcher("showtype.jsp"); rd.forward(request, response); }else{ RequestDispatcher rd = request .getRequestDispatcher("addtype.jsp"); rd.forward(request, response); } } %> <body> <h1>添加新闻类型</h1><hr/> <form action="addtype.jsp" method="post"> 新闻类型:<input type="text" name="typename"></br> <input type="submit" value="提交"> </form> </body>
showtype.jsp
<script type="text/javascript"> function deletes_(id){ var f=confirm("是否确定删除?"); if(f){ location.href="showtype.jsp?ids="+id; }else{ alert("您取消删除"); } } function update(id){ location.href="updatetype.jsp?ids="+id; } </script> </head> <% request.setCharacterEncoding("UTF-8"); String id=request.getParameter("ids"); String type=request.getParameter("type"); if(id!=null){ TypeServlet ts=new TypeServlet(); int a = ts.delete(Integer.parseInt(id)); response.sendRedirect("showtype.jsp"); } %> <body> <h1> 展示类型</h1> <table border="1"> <tr><td>编号</td><td>类型名称</td><td>操作</td></tr> <% //直接调用后台数据 TypeServlet ts=new TypeServlet(); List<types> list=ts.selets(); for(int i=0;i<list.size();i++){ types n=list.get(i); %> <tr> <td><%=n.getId() %></td> <td><%=n.getTypename() %></td> <td><input type="button" onclick="update(<%=n.getId() %>)" value="修改"/> <input type="button" onclick="deletes_(<%=n.getId() %>)" value="删除"/></td> </tr> <% } %> </body>
updatetype.jsp
<body> <% request.setCharacterEncoding("UTF-8"); String id=request.getParameter("ids"); TypeServlet tsl=new TypeServlet(); types ts=new types(); String type= request.getParameter("type"); if(type!=null){ String typename=request.getParameter("newtype");//从下面的输入取值 String id1=request.getParameter("id"); ts.setId(Integer.parseInt(id1));//强转 ts.setTypename(typename); int a=tsl.update(ts); response.sendRedirect("showtype.jsp"); }else{ if(id!=null){ ts=tsl.selectone(Integer.parseInt(id)); } } %> <h1>修改新闻类型界面</h1> <hr/> <form action="updatetype.jsp" method="post"> <input type="hidden" name="type" value="3"> <input type="hidden" name="id" value="<%=ts.getId() %>"> 新闻类型:<input type="text" value="<%=ts.getTypename() %>" name="newtype"><br/> <input type="submit" value="提交"> </form> </body>
最终项目在tomcat上发布。
下面的地址积分系统调的太高了,我重新上传了一份内容是一样的地址在这:http://download.csdn.net/download/qq_34178998/10154005
高积分下载打包文件在这:http://download.csdn.net/download/qq_34178998/9920064
也可以参考在这篇基础上的两个表关联操作:http://blog.csdn.net/qq_34178998/article/details/77017760
有问题也希望各位提出,一起进步,
没积分的留言。留下邮箱,我看到会给你发的,但是太多的,可能会漏发,见谅!!!
也欢迎转载!!!也欢迎转载!!!也欢迎转载!!!
需要代码的人多,直接上传百度云了,大家自己下载,喜欢的话给我点个赞 链接:https://pan.baidu.com/s/1YPUWpI4A3Q54V0_d-cunxg 提取码:pzey
点个赞点个赞点个赞点个赞点个赞
-
EditText+listview+数据库操作实现搜索功能
2017-05-15 10:41:11实现搜索功能方式有哪些android搜索框功能是非常常见的,实现搜索框的方式有很多种,常见的有这三种: - SearchView - autocompletetextview - EditText - 自定义方式EditText+listview+数据库本文主要讲述...实现搜索功能方式有哪些
android搜索框功能是非常常见的,实现搜索框的方式有很多种,常见的有这三种:
- SearchView
- autocompletetextview
- EditText
- 自定义方式EditText+listview+数据库
本文主要讲述以下这种方式,不建议使用sp存储。sp存储不好控制,而且没有数据库的方式实现起来简单,方便以后的管理(属不定需要增加需求了呢)
- 先看效果图:
确定所需的搜索功能是什么样的需求
本文提供的是以下需求:
- 输入关键字,点击搜索后,保存输入的关键字,跳转对应的搜索结果界面
- 再次进入有搜索功能的界面,输入关键字自动查询数据裤,把数据显示出来(只有输入关键字才会显示搜索历史,默认是不显示的)
- 清空历史数据
1.准备一个数据库帮助类SearchRecordSQHelper,来创建一个保存搜索历史的表
/** * Created by Administrator on 2017/5/14. */ public class SearchRecordSQHelper extends SQLiteOpenHelper { private static String name = "mysearch.db"; private static Integer version = 1; public SearchRecordSQHelper(Context context) { super(context, name, null, version); } @Override public void onCreate(SQLiteDatabase db) { //打开数据库,建立了一个叫records的表,里面只有一列name来存储历史记录: db.execSQL("create table records(id integer primary key autoincrement,name varchar(200))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
2.在oncreat中实例化这个帮助类
SearchRecordSQHelper helper = new SearchRecordSQHelper(this); //进入界面,历史记录是默认显示的(测试) // queryRecords("")
queryRecords(String tempName)查询数据
/* *模糊查询数据 并显示在ListView列表上 * */ private void queryRecords(String tempName) { //模糊搜索 Cursor cursor = helper.getReadableDatabase().rawQuery( "select id as _id,name from records where name like '%" + tempName + "%' order by id desc ", null); // 创建adapter适配器对象,装入模糊搜索的结果 adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cursor, new String[]{"name"}, new int[]{android.R.id.text1}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); list_result.setAdapter(adapter); adapter.notifyDataSetChanged(); }
3.在EditText中输入关键字,点击搜索查询
String et_text = et.getText().toString().toString().trim(); if(et_text.length()==0){ return; } //isExistData是否存在历史记录,返回一个布尔值 boolean is_existData = isExistData(et_text); if (!is_existData) { insertRecords(et_text);//插入数据 //数据库中插入数据后,再次查询显示数据,这里是为了测试,真实情况应该直接跳转一个界面的 queryRecords(""); } //根据输入的内容模糊查询数据结果,并跳转到另一个界面,这个根据需求实现 Toast.makeText(MainActivity.this,"搜索结果:"+et_text, Toast.LENGTH_SHORT).show();
isExistData是否存在历史记录,返回一个布尔值
/** * 是否存在数据,返回boolean */ private boolean isExistData(String tempName) { //从records这个表里找到name=tempName的id Cursor cursor = helper.getReadableDatabase().rawQuery( "select id as _id,name from records where name =?", new String[]{tempName}); //判断是否有下一个 return cursor.moveToNext(); }
insertRecords(et_text)插入数据
/* *插入数据 * */ private void insertRecords(String tempName) { //历史记录的字段:tempName db = helper.getWritableDatabase(); db.execSQL("insert into records(name) values('" + tempName + "')"); db.close(); }
再次进入有搜索功能的界面,输入关键字,动态查询数据库,匹配相应数据,显示出来
- 这里需要用到TextWatcher,来对edittext输入的信息进行实时监听
//在EditText中每次输入信息,都会依次调用这三个方法 et.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { //文本输入之前调用 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { //文本输入中调用 } @Override public void afterTextChanged(Editable s) { //文本输入完调用 } });
- 功能实现(输入关键字,查询数据,显示出来)
@Override public void afterTextChanged(Editable s) { //文字输入完成调用 if (s.toString().trim().length() != 0) { list_result.setVisibility(View.VISIBLE); clearRecord.setVisibility(View.VISIBLE); serch_result.setVisibility(View.VISIBLE); } //每次输入后都查询数据库并显示 //根据输入的值去模糊查询数据库中有没有数据 String tempName = et.getText().toString().trim(); queryRecords(tempName); }
清空数据
/** * 清空数据 */ private void clearRecord() { db = helper.getWritableDatabase(); db.execSQL("delete from records"); db.close(); }
到这里基本上完成了,什么点击事件的都没写,本文主要时提供一个思路,具体需要什么功能,还需要根据实际情况定制!
demo下载:http://download.csdn.net/detail/qq_34501274/9842502
- 先看效果图:
-
jsp连接数据库实现用户登录功能
2015-12-22 21:10:37jsp连接数据库实现用户登录功能 -
PHP案例:连接数据库实现登录功能
2018-02-20 08:21:07PHP案例:实现登录功能(连接MySQL数据库) 一、创建数据库与表 二、创建PHP项目login 1、用户实体类 - User.php <?php /** * Created by PhpStorm. * User: howard * Date: 2017/4/12 * Time: ... -
JAVAWEB实现数据库备份功能
2016-04-26 15:02:32JavaWeb实现数据库备份一.整体思路这次公司的网管系统需要做一个数据库备份的功能,由于使用的MySql数据库,而且系统是windows(目前也就会windows),所以可以选择的方法就比较有限了。 一开始我尝试使用mysql的... -
asp.net采用cookie+数据库方式实现购物车功能分析
2014-12-24 22:30:12asp.net采用cookie+数据库方式实现购物车功能分析 asp.net采用cookie+数据库方式实现购物车功能分析,购物车是电子商务平台的一种重要功能,指的是应用于网店的在线购买功能,它类似于超市购物时使用... -
Qt实现连接数据库实现登陆功能
2019-08-13 16:32:55//连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost) db.setPort(3306); //连接数据库端口号,与设置一致 db.setDatabaseName("fire_information"); //连接数据库... -
eclipse连接数据库并实现用户注册登录功能
2020-12-06 19:40:58文章目录MySQL配置环境变量navicat部署tomcat导入驱动修改代码连接mysql数据库运行: MySQL配置环境变量 mysql肯定是必不可少的,这个就不用多说了,自己去官网下载就行我们来配置一下mysql的环境变量 步骤: 我的... -
jsp访问mysql数据库实现注册登录功能
2019-01-25 18:35:17上次用jdbc在java控制台实现了用户登录注册功能,最近在学习Javaweb,有了一些jsp基础,正好写一篇jsp访问MySQL数据库实现网页简易用户注册登录功能。 首先将新建的Web项目添加到Tomcat中 接下来导包 将mysql ... -
Delphi实现数据库查询编辑功能
2017-01-03 09:51:57Delphi实现数据库查询编辑功能 -
C#窗体-数据库连接及登录功能的实现
2017-11-14 16:15:56本篇文章介绍了C#窗体的数据库连接及登录功能的实现 工具或平台:VS2010、sqlserver2012 1.创建完窗体后,点击数据,选择添加新数据源 2.选择数据库 3.选择数据集 4.新建连接-Microsoft SQL Server,添加完... -
jsp操作数据库怎么实现回收站功能。
2015-10-29 15:08:32就是把数据库中的数据删除到回收站中,并且能在回收站中查看删除的内容,还能进行彻底删除。 -
java利用jdbc连接Mysql数据库——实现登录注册功能
2018-02-06 11:01:11实现功能如下: ①0选中注册,若用户名相同则注册失败,重新选择 ②若用户名不存在则保存到数据库 ③1选中登录,若用户名和密码符合时,登录成功。 代码如下: package com.lucfzy; import java.sql.... -
java的excel表格上传实现导入mysql数据库功能
2016-05-12 06:47:44在网页上有个按钮要实现点击按钮选择文件实现将文件导入mysql数据库的功能,上百度不知道应该用什么关键词搜索,求技术大牛给个网址 -
Android 本地数据库实现历史记录功能
2018-07-20 18:03:59这次主要是通过本地数据库来实现历史记录。 首先要建表,创建需要存储的字段名,为了每次将选中的历史记录置顶,我增加了时间字段 import android.content.Context; import android.database.sqlite.SQ... -
通过jsp实现页面搜索访问数据库功能
2018-06-07 22:15:48最近在参加学校软件杯大赛,实在属于一个菜鸟,什么都不会,所以弄一个简单的页面搜索也出错好多今天实现的一个通过jsp的模糊搜索,访问数据库并展现出来form 中action属性里的jsp页面是将数据传送过去,而submit的... -
Python访问MySQL数据库并实现其增删改查功能
2015-04-21 14:15:34不过,因为最近在学习Python,以下就用Python来实现它。其中包括创建数据库和数据表、插入记录、删除记录、修改记录数据、查询数据、删除数据表、删除数据库。还有一点就是我们最好使用一个新定义的类来处理这件事。... -
基于labview实现MYSQL数据库查询功能
2019-05-23 12:30:09基于labview实现MYSQL数据库查询功能 前言: labview是一款功能强大的图形化编程软件,也就是俗称的G语言。 本篇将介绍如何利用labview对MYSQL进行列表分页,范围查询及模糊查询等几个可广泛应用的简易功能,但... -
SQL Server 2008 通过配置数据库邮件实现发送邮件功能
2014-12-31 13:40:541.简单了解数据库邮件的概念和使用的传输协议及系统体系: 数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询... -
layui实现数据库查询分页功能
2019-06-19 18:36:05layui实现数据库查询分页功能: 引用:https://blog.csdn.net/ardo_pass/article/details/78694717 -
JAVA简单链接Oracle数据库,实现注册和登陆的功能
2014-01-06 20:29:25JAVA简单链接Oracle数据库,实现注册和登陆的功能,我是新人,有什么需要改进的地方请告诉我 -
java web 如何实现excel导入数据库功能 并且判断是否重复添加
2017-10-30 08:35:45java web 如何实现从excel导入数据到数据库的功能 并且判断是否重复添加 -
分别使用SQL Server数据库,Access数据库,Excel数据库实现点名的功能
2015-12-02 12:40:09使用C#来实现这些问题的具体代码,使用的方式不同,要求一个简单的代码,谢谢大家 -
java 数据库编程 实现添加,修改,删除,查询功能
2018-11-07 23:50:381、安装数据库服务器mysql和数据库客户端navicat。 (1)数据库服务器为绿色版,直接将附件mysql解压即可。 (2)数据库服务启动:双击解压目录里的mysql_start_utf8.bat命令即可启动服务。停止服务命令:mysql_... -
thinkphp实现对MySQL数据库实现备份功能
2017-02-12 11:04:19public function exportDatabase(){ header("Content-type:text/...charset=utf-8"); $path = C('ROOT_MYSQL_PATH'); $model = M(); //查询所有表 $sql="show tables";...$result=$model->query($sql);...//print_r($result